可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

Nginx 启用 RSA && ECC 双证书

News mlone11978 740℃ 0评论

这篇帖子介绍如何为 Nginx 启用 RSA / ECC 双证书配置

RSA 和 ECC 证书

内置 ECDSA 公钥的证书称为 ECC 证书,内置 RSA 公钥的证书称为 RSA 证书
安全性方面,256 位 ECC Key 等同于 3072 位 RSA Key
运算速度上,ECC 运算速度 更快
且由于同等安全条件下,ECC 算法所需的 Key 更短,所以 ECC 证书拥有比 RSA 证书 更小的文件体积
那么综上,ECDHE 密钥交换 + ECDSA 数字签名无疑是坠吼滴选择。

那么问题来了,你说 ECC 是坠吼滴,那还为什么要加 RSA 搞个双证书呢?
那是因为,ECC 虽好,但有一个缺点:
并不是所有浏览器都支持 ECDHE 密钥交换,也就是说 ECC 证书的兼容性要差一些。例如在 Windows XP 中,使用 ECC 证书的网站时需要浏览器自行 TLS(例如 Firefox 的 TLS 自己实现,不依赖操作系统);Android 平台中,也需要 Android 4+ 才支持 ECC 证书。

而这时,好消息是
Nginx 1.11.0 版本开始提供 RSA/ECC 双证书的支持
它的实现原理是:分析在 TLS 握手中双方协商得到的 Cipher Suite,若支持 ECDSA 就返回 ECC 证书,反之返回 RSA 证书。

Nginx 双证书配置

按照本站示例,替换为你的即可。

    #将 SSL 部分的站点配置为以下样式      #指定两份证书即可      #Let's Encrypt的 ECC 证书     ssl_certificate ~/LetsEncryptecc-chained.cer;     ssl_certificate_key ~/LetsEncryptecc.key;      #Let's Encrypt的 RSA 证书     ssl_certificate ~/LetsEncryptrsa-chained.cer;     ssl_certificate_key ~/LetsEncryptrsa.key;      #优先采取服务器算法     ssl_prefer_server_ciphers on;      #定义算法     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"; 

关于 HTTPS 的配置方法,请看 Nginx 启用 HTTPS 站点

转载请注明:逗比根据地 » Nginx 启用 RSA && ECC 双证书

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址