TLS
传输层安全性协议(Transport Layer Security,TLS)及其前身安全套接层(Secure Sockets Layer,SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
简介
时间轴
- 1994年,网景公司(Netscape)推出首版网景导航者网页浏览器时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。
- 1995年2月,发布SSL 2.0版
- 1996年,发布SSL 3.0版
- 1999年,IETF发布TLS 1.0(即 RFC 2246),是基于SSL 3.0将其标准化,并称为TLS(Transport Layer Security)。
- 2006年4月,发布TLS 1.1(即 RFC 4346),它是TLS 1.0的更新。
- 2008年8月,发布TLS 1.2(即 RFC 5246),基于TLS 1.1规范。
- 2014年10月,Google发布在SSL 3.0中发现设计缺陷,建议禁用此一协议。攻击者可以向TLS发送虚假错误提示,然后将安全连接强行降级到过时且不安全的SSL 3.0,然后就可以利用其中的设计漏洞窃取敏感信息。
- 2014年11月25日,Mozilla也在发布的Firefox 34中彻底禁用了SSL 3.0。
- 2015年,RFC 7568 标准弃用了SSL 3.0。
- 2018年8月,发布TLS 1.3 (即 RFC 8446)。
SSL/TLS证书
证书类型
证书类型 | 描述 | 描述 |
---|---|---|
域名验证 (DV) 证书 Domain Validated Certificate |
||
组织验证(OV)证书 Organization Validated Certificate |
||
扩展验证(EV)证书 Extended Validation Certificate |
数字证书颁发机构
数字证书颁发机构(Certificate Authority,简称CA),是负责发放和管理数字证书的第三方机构。
名称 | 描述 | 网址 |
---|---|---|
Let's Encrypt | 提供免费、自动化地颁发的域名验证 (DV) 证书,不提供组织验证(OV)证书和扩展验证(EV)证书。 | https://letsencrypt.org/ |
DigiCert | https://www.digicert.com/ | |
GlobalSign | https://www.globalsign.com/ |
自签名证书
自签名证书(self-signed certificate)是用自己的私钥签署的数字证书。自签证书和数字证书颁发机构(CA)签名证书一样可以用来加密数据,但不能用于向用户证明服务身份,浏览器会显示不安全。一般用于非公开的网页服务器、测试等。
自建CA并签发CA证书
常见证书程序
名称 | 描述 |
---|---|
Acme.sh | 是一个免费开源的ACME客户端脚本,支持证书自动签发和更新。 |
常见问题
更新证书后没有生效?
- 1.检查证书有没有替换为新的证书,
ls -al 证书目录
查看下文件日期。对于docker容器部署,要查看容器内证书有没有正确更新,可以使用命令docker exec 容器名称 ls -al 证书目录
- 2.检查服务器软件证书目录配置是否正确,再重新加载配置,以刷新证书。如Nginx软件使用
nginx -s reload
重新加载配置,容器部署nginx可以使用docker exec nginx nginx -s reload
。 - 3.浏览器缓存了TLS会话信息,换个浏览器可以看到新证书已经生效。