Please enable Javascript to view the contents

本站开始使用 TLS 1.3和 ECC 证书

 ·  ☕ 2 分钟  ·  ✍️ IceKam · 👀... 阅读

前言:

搞了个通配符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并不太容易受到量子计算机的安全威胁。

配置文件分享

生成证书

1
2
openssl ecparam -genkey -name secp256r1 | openssl ec -out icekam.com.key
openssl req -new -key icekam.key -out icekam.csr
  • 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
分享
您的鼓励是我最大的动力
bitcoin QR Code

icekam
作者
IceKam
茶艺品鉴砖家,低端码字人口。