前言:
搞了个通配符SSL证书,遂即决定小改一下。
经过调研发现 TLS 1.3
比较好,遂即采用。
因为重新颁发要重新生成 SSL
证书,调研了下发现ECC加密算法比较6。
TLS1.3
优势
安全方面
TLS 1.3 移除了很多过时的密码学原型和功能(例如压缩、重协商),强制要求完美前向安全。
TLS 1.2 支持了很多加密算法(包括 3DES、静态 DH 等),这导致了 FREAK、Logjam、Sweet32 等攻击的出现。
TLS 1.3 缩紧了对加密原型的限制,避免了因服务器启用不安全的算法导致协议的安全性受到影响。
在这方面的简化也使得运维和开发者配置 TLS 变得更容易,不再容易误用不安全的配置。
TLS 1.3 之前,整个握手环节都是没有加密保护的,这泄漏了很多信息,包括客户端和服务器的身份。
TLS 1.3 对握手的绝大部分信息进行了加密,这保护了用户隐私,也在一定程度上防止了协议僵化问题。
性能方面
虽然电脑越变越快,但在互联网上传输数据耗费的时间依然受限于光速,所以两个节点间来回传输一次的时间(RTT)成为了限制协议性能的因素之一。
TLS 1.3 只需要一个 RTT 就能完成握手,相比 TLS 1.2 省去了一个 RTT。
并且 TLS 1.3 支持 “0-RTT” 模式,在该模式下客户端可以在握手的同时发送数据,极大地加快了页面的加载速度。
TLS 1.3 还增加了 ChaCha20/Poly1305 支持,在不支持 AES 硬件指令的老设备上能提升加、解密性能。
配置分享
ssl_protocols TLSv1.2 TLSv1.3;
请注意,本站还将继续兼容 TLSv1.2
,以上配置为 nginx
配置文件。
ECC 加密算法
优势
性能
ECC密钥更短,意味着ECC将占用更少的资源却有更高的性能;
简单
ECC更易扩展,随着RSA密钥更长只会让SSL/TLS面临更多的麻烦;
安全
ECC并不太容易受到量子计算机的安全威胁。
配置文件分享
生成证书
|
|
- 将
csr
文件提交到证书平台生成crt
文件。
- 一定要保存好
key
文件。
nginx 配置
ssl_certificate /usr/local/nginx/icekam.com.crt;
ssl_certificate_key /usr/local/nginx/icekam.com.key;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20
draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
- 默认剔除弱加密算法,本算法不支持
JDK8
以下版本 、Windows XP
系统、IE10
以下浏览器等。
证书链
将SSL 证书链配置文件复制进 crt
文件底部,重启 nginx
即可生效。
总结
这一波操作后感觉速度是有点儿提升,不过提升最大的可能还是安全性能。
本文参考
https://juejin.im/post/5c21f5b16fb9a049d13229f0 浅谈 TLS 1.3