admin 管理员组

文章数量: 887021

HTTPS,SSL,TLS

SSL TLS

secure sockets layer 安全套接字层,Netscape公司研发。
transport layer security 安全传输层协议

定义

协议

年份

SSL 1.0

未知

SSL 2.0

1995

SSL 3.0

1996

TLS 1.0

1999

TLS 1.1

2006

TLS 1.2

2008

TLS 1.3

2018

IETF(The Internet Engineering Task Force)将SSL标准化,即RFC 2246,并将其称为TLS(Transport Layer Security)。从技术上讲,TLS 1.0与SSL 3.0的差异非常微小。但正如RFC所述"the differences between this protocol and SSL 3.0 are not dramatic, but they are significant enough to preclude interoperability between TLS 1.0 and SSL 3.0"(本协议和SSL 3.0之间的差异并不是显著,却足以排除TLS 1.0和SSL 3.0之间的互操作性)。TLS 1.0包括可以降级到SSL 3.0的实现,这削弱了连接的安全性。

SSL证书

在使用HTTPS协议时,我们需要先获取一个SSL证书,他可以是免费的,也可以是收费的,免费的使用功能上会受到一定限制,但是原理都是一样的。以腾讯云生成SSL证书为例:

生成证书时可以选择算法,RSA和ECC都是非对称加密算法 ,这里选择的算法就是用来给浏览器和服务器之间传输的数据加密用的算法。注意,这里腾讯会帮你自动生成一对公私钥,公钥交给CA审核后写入证书里面,私钥以文件形式给用户。后面还有一个私钥密码,这个是自定义的一个密码,访问私钥时,需要先提供这个密码,他是给私钥上的一个保护方式,注意他并不是私钥。这样你的证书丢了以后,还是提供另外一个密码才能访问。另外这个配置在Tomcat中可以配置keystorePass:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" keystoreFile="conf\.keystore" keystorePass="123456"/>

SSL证书工作流程

当我们将SSL证书安装在服务器上之后,当客户端和服务器通过TCP建立连接以后,就可以发起SSL握手了,
1、首先服务器会将SSL证书公钥和相关信息(版本,加密算法等)发送给客户端,
2、客户端拿到证书会校验证书的可靠性,
· 证书由受信任的CA签名
· 证书是有效的 – 没有过期或被撤销
· 证书确认了关键长度和其他项目所需的安全标准
· 证书上列出的域与用户请求的域匹配
3、当浏览器确认证书安全时,生成一个对称的加密秘钥X,并协商出能够使用的最高级别加密算法,用证书公钥加密X发送给服务器
4、服务器收到数据后,用证书私钥解密,并得到秘钥X,然后双方使用秘钥X加密数据进行传输。

SSL证书中包含什么(有公钥无私钥)

1、地址栏:安全锁、Https标志、企业名称(仅EV类型证书)。
示例:增强型EV证书在Chrome浏览器的显示效果

2、常规:证书的使用者、颁发者和有效期。

3、详细信息:证书版本、序列号、签名算法、加密算法、公钥、有效期及使用者的详细信息(如省市、企业名称、部门等)等。

申请证书时CSR文件是什么?

Cerificate Signing Request 证书请求文件
CSR文件是您的公钥证书原始文件,包含了您的服务器信息和您的单位信息,需要提交给CA认证中心进行审核。可以自行生成CSR文件,生成结果文件是公钥和私钥文件,也可以让平台生成,下发证书时平台会把私钥文件给你。

本文标签: HTTPS SSL TLS