SSL协议提供的服务主要有:
1)对用户和服务器进行身份验证,以确保数据发送到正确的客户端和服务器
2)加密数据,防止数据中途被窃取
3)保持数据完整性,确保数据在传输过程中不被改变
SSL 证书的作用
SSL 证书是一种数字证书,类似于驾驶执照、护照或营业执照的电子版。
SSL证书两大作用:数据加密、身份认证
SSL证书遵守SSL协议,在客户端浏览器和Web服务器之间建立SSL安全通道。
有效、可信的 SSL 数字证书包含公钥和私钥。公钥用于加密信息,私钥用于解密加密信息。因此,当浏览器指向安全域时,SSL 会同时确认服务器和客户端,并创建加密方法和唯一的会话密钥。他们可以启动安全会话,保证消息的私密性和完整性。
关于自签名 SSL 证书
所谓自签名证书,就是给自己颁发的证书,因此颁发实体是不值得信任的。
自签名证书不受浏览器信任,当用户访问自签名证书时,浏览器会警告用户该证书不受信任,需要手动确认是否信任该证书,如下所示:
既然自签名证书不可信,那为什么包括12306在内的有些人还在使用自签名证书呢?
主要原因是:
1)自签名证书是免费的
2)自签名证书流程比申请CA证书简单
3)自签名证书也可以加密数据
4)自签名证书的有效期可以设置的很长,省去了续费的麻烦
5)自签名证书更方便测试,比如你可以生成任意多个不同的服务器IP地址。
所以对于一些个人开发者来说,使用自签名证书可能会更方便一些,只要你能接受别人浏览你的网站时弹出的提醒:不安全
关于 CA 签名的 SSL 证书
相对于自签名证书而言,由权威证书颁发机构()签发的签名证书,我们称之为CA证书。
CA 证书保证持有者的身份和公钥的所有权
浏览器信任CA证书,如下图:
生成自签名 SSL 证书
虽然自签名证书提示:不安全。但是还是有上面说的很多优点的,下面就来介绍一下自签名证书的生成,主要使用Java JDK:.exe
1:首先下载并安装Java JDK:
2:安装完之后根据实际路径找到.exe,比如我的在这个路径:C:\Files (x86)\Java\jdk1.8.0_101\bin\.exe
3:生成。打开命令行(cmd),进入路径,运行:
- -别名 - - RSA - 2048 - d:\\.p12 - 3650 -ext san=ip:192.168.100.132 -dname "CN=, OU=, O=, L=gd, ST=gd, C=china"
在这个命令中,只需要输入密码就可以生成,假设密码为:
在:
1)可以理解为一个数据库,可以存储很多组数据。
每组数据主要包含以下两类数据:
a:密钥实体(Key)——密钥(key)或者私钥和配对的公钥(使用非对称加密)
b:受信任的证书实体()- 仅包含公钥
2)-d:\\.p12,在d:\指定(先手动创建此文件夹),生成:.p12
3)-alias12306证书下载,指定其中唯一的别名:,因为中可能还有其他别名,如:2
4)- 表示密钥库类型为
5)-RSA,指定加密算法。本例中使用通用的RAS加密算法。
6)-2048指定密钥长度为2048
7)-3650指定证书有效期为3650天
8)-ext san=ip:192.168.100.132 请根据您服务器的IP地址进行设置,如果不设置,客户端访问时可能会报错。
9)-dname“CN=,OU=,O=,L=gd,ST=gd,C=china”
其中:“CN=(名字和姓氏)、OU=(组织单位名称)、O=(组织名称)、L=(城市或地区名称)、ST=(州或省份名称)、C=(单位的两字母国家代码)”,我在测试的时候发现填任意一个都可以。
4:导出公钥证书(主要用于客户端):
运行命令:
- - d:\\.p12 -别名 -file mycer.cer -
在:
1)- d:\\.p12 指的是上面的文件
2) -alias 是指定别名的组
3)-file mycer.cer指定在当前目录下生成名为mycer.cer的证书
4)-是上面生成的密码
标题:12306证书下载 HTTPS 是什么?一文带你了解 HTTPS 的安全基础和作用
链接:https://www.llthd.com/news/xydt/16417.html
版权:文章转载自网络,如有侵权,请联系删除!