https详情及SSL证书生成(Https系列一)

  • 时间:2018-06-20 22:26 作者:php疑难杂症铺 来源:php疑难杂症铺 阅读:175
  • 扫一扫,手机访问
摘要:https详情及SSL证书生成(Https系列一)一:https的简单详情HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全

https详情及SSL证书生成(Https系列一)


一:https的简单详情

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL(Secure Socket Layer)。

SSL协议提供的服务主要有:

1)认证使用户和服务器,确保数据发送到正确的用户机和服务器

2)加密数据以防止数据中途被窃取

3)维护数据的完整性,确保数据在传输过程中不被改变

关于https的详情,网上有很多更详细更专业的资料,在此只作简单详情,让大家有少量概念性的理解,并最终完成android端和服务器端的https的实现。


二:SSL证书的作使用

SSL证书是数字证书的一种,相似于驾驶证、护照和营业执照的电子副本。

SSL证书的两大作使用:数据加密和身份认证

SSL 证书遵守 SSL协议,通过在用户端浏览器和Web服务器之间建立一条SSL安全通道

一个有效、可信的 SSL 数字证书包括一个公共密钥和一个私使用密钥。公共密钥使用于加密信息,私使用密钥使用于解译加密的信息。因而,浏览器指向一个安全域时,SSL 将同步确认服务器和用户端,并创立一种加密方式和一个唯一的会话密钥。它们能启动一个保证消息的隐私性和完整性的安全会话。


三:关于自签名SSL证书

所谓自签名证书,就是自己颁发给自己的证书 ,所以颁证的主体是不可信任的

自签证书是不会被浏览器信任的证书的,使用户在访问自签证书时,浏览器会警告使用户此证书不受信任,需要人工确认能否信任此证书,如下图:

https详情及SSL证书生成(Https系列一)

既然自签证书是不可信任的,那为何还有人包括12306也在使用自签证书呢?

主要起因是:

1)自签证书是免费的

2)自签证书相对申请CA证书,流程更简单

3)自签证书同样能对数据进行加密

4)自签证书的有效期能设置很长,免去续签的麻烦

5)自签证书更方便测试,比方说你想生成多少个不同服务器ip的都能

所以对于少量个人开发者来说用自签证书可可以会更方便,只需你可以接受别人浏览你网站时弹出的提示:不安全


四:关于CA 签名SSL证书

相对自签证书的自己给自己颁证,由权威的证书受权机构(Certificate Authority)颁发的签名证书,我们称之为:CA证书

CA证书保证书持有者的身份和公钥的拥有权

浏览器对CA证书是信任的,如下图:

https详情及SSL证书生成(Https系列一)


五:自签名SSL证书的生成

自签证书尽管提醒:不安全。但还是有很多上面已提到的好处,所以下面先说说自签证书的生成,主要用Java JDK下的:keytool.exe

1:先下载安装Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2:安装完后,根据实际的路径找到keytool.exe,如我的在此路径:C:\Program Files (x86)\Java\jdk1.8.0_101\bin\keytool.exe

3:生成keystore。打开命令行(cmd),去到keytool所在的路径,运行:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore d:\mykeystore\keystore.p12 -validity 3650 -ext san=ip:192.168.100.132 -dname "CN=garyyan, OU=mycompany, O=mycompany, L=gd, ST=gd, C=china"

此命令中间只要要输入密码,就可以生成keystore,假设密码是:123456

其中:

1)keystore可了解为一个数据库,能存很多个组数据。

每组数据主要包含下面两种数据:

a:密钥实体(Key entity)——密钥(secret key)又或者者是私钥和配对公钥(采使用非对称加密)

b:可信任的证书实体(trusted certificate entries)——只包含公钥

2)-keystore d:\mykeystore\keystore.p12,指定在d:\mykeystore(先要手动创立此文件夹),生成keystore:keystore.p12

3)-alias tomcat,为其指明在keystore中的唯一的别名:tomcat ,由于keystore中可可以还存有其它的别名,如:tomcat 2

4)-storetype PKCS12指明密钥仓库类型是PKCS12

5)-keyalg RSA,指定加密算法,本例中的采使用通使用的RAS加密算法

6)-keysize 2048指定密钥的长度为2048

7)-validity 3650 指定证书的有效期为3650天

8)-ext san=ip:192.168.100.132请根据你的服务器的IP地址设置,假如不进行设置,用户端在访问的时候可可以会报错

9)-dname “CN=garyyan, OU=mycompany,O=mycompany,L=gd, ST=gd, C=china”

其中:”CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或者区域名称), ST=(州或者省份名称), C=(单位的两字母国家代码)”,我在测试的过程中发现随意填就行

4:导出公钥证书(主要使用于用户端)

运行命令:

https详情及SSL证书生成(Https系列一)

其中:

1)-keystore d:\mykeystore\keystore.p12 是指上面的keystore文件

2)-alias tomcat是指定别名为tomcat的那一组

3)-file mycer.cer指定在当前目录生成名为mycer.cer的证书

4)-storepass 123456是上面生成keystore 所使用的密码


六:CA证书的申请

有很多网站可以申请CA证书,如沃通,腾讯,阿里云等,大家可根据自己的喜好去申请

CA证书又分免费和不同价钱的,当然一分钱一分货,对于我们个人开发者来说,免费的CA证书就足够了,

我个人主要是想处理当别人访问我的https网站时弹出“不安全”的这个问题,由于“不安全”这个提醒被人感觉很像钓鱼网站 :P

下面主要讲的是去阿里云申请免费型DV SSL证书,此种证书是每个证书绑定一个域名,如有多个域名可申请多个证书

1:找到阿里云的CA证书

打开阿里云主页,选“产品”再选“CA证书”如下图:

https详情及SSL证书生成(Https系列一)

2:选择:立即购买

3:选择免费型DV SSL(最主要是不使用钱呵 :p),点立即购买,如下图:

https详情及SSL证书生成(Https系列一)

4:点“确认订单”->”去支付“

5:点”证书控制台“

6:点如下图的”补全“,而后填写个人资料

https详情及SSL证书生成(Https系列一)

7:信息补全后点提交,提交后大概一小时左右就可以收到证书申请成功的信息,接下来就下载证书:

去到:”管理控制台“->”产品与服务”->”我的证书“,选择”下载”

https详情及SSL证书生成(Https系列一)

8:阿里云可以根据不同的服务器生成不同的证书,如tomcat,apache等,选择自己所要的,如下图:

https详情及SSL证书生成(Https系列一)

至此,”Https系列之一:https的简单详情及SSL证书的生成”已完成。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】什么是Web?零基础能不能学Web前端开发?(2019-07-19 07:04)
【网页前端|HTML】为什么学Web前端?选择Web前端理由(2019-07-17 20:28)
【网页前端|JS】Java面经-百度新入职老哥整理近半年学习经验,面试刷题路线!(2019-07-16 22:16)
【网页前端|HTML】最全面的前端开发指南(2019-07-15 12:57)
【系统环境|数据库】零基础如何快速学好大数据?(2019-06-29 12:27)
【系统环境|Linux】零基础如何学好大数据?必备需要学习知识(2019-06-18 11:54)
【系统环境|】Hadoop环境中管理大数据存储八大技巧(2019-06-15 11:01)
【系统环境|服务器应用】现在国内IT行业是不是程序员过多了?(2019-06-11 06:34)
【系统环境|服务器应用】新贵 Flutter(2) 自己设置 Widget(2019-06-11 06:34)
【系统环境|服务器应用】Android完整知识体系路线(菜鸟-资深-大牛必进之路)(2019-06-11 06:34)
手机二维码手机访问领取大礼包
返回顶部