前情
曾经在 这里 讲述了如何用 acme.sh 申请 RSA 证书
这里我们还是使用 DNS 验证的方法 所以先要导入之前申请的 ID 和 Token 具体的请看 acme.sh 的 wiki
1 2
| export DP_Id="1234" export DP_Key="sADDsdasdgdsf"
|
申请并安装 ECC 证书
跟以前一样 先申请 后安装
1 2 3 4
| #申请 ECC 256 位 证书(跟 384 位证书 二选一) acme.sh --issue --dns {dns_short_name} -d example.com -d www.example.com --keylength ec-256 #申请 ECC 384 位 证书(跟 256 位证书 二选一) acme.sh --issue --dns {dns_short_name} -d example.com -d www.example.com --keylength ec-384
|
注意--ecc
这个参数
1 2 3 4
| acme.sh --install-cert -d example.com --ecc \ --key-file /path/to/keyfile/in/nginx/key.pem \ --fullchain-file /path/to/fullchain/nginx/cert.pem \ --reloadcmd "service nginx force-reload"
|
设置 Nginx 使其使用双证书
把 RSA 与 ECC 证书的位置都设置好
1 2 3 4 5
| ssl_certificate /path/to/fullchain/nginx/rsa.cert.pem; ssl_certificate_key /path/to/keyfile/in/nginx/rsa.key.pem;
ssl_certificate /path/to/keyfile/in/nginx/ecc.cert.pem; ssl_certificate_key /path/to/keyfile/in/nginx/ecc.key.pem;
|
然后修改ssl_cipers
使其优先使用 ECC 证书
此处要配合我的 上一篇 食用 因为这里我启用了 TLS v1.3
1 2 3 4
| ssl_protocols TLSv1.2 TLSv1.3; #ssl_prefer_server_ciphers 意思是由服务器提供加密套件的顺序 ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+3DES:RSA+3DES;
|
设置好后就可以用nginx -t
测试一下 若成功 会输出以下
1 2
| nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
|
成功了就可以重启 Nginx 了
使用浏览器测试是否开启成功
依然用 Firefox 来测试
地址栏旁的绿色锁->显示连接细节->更多信息->查看证书->详细信息->看图
![Zjfjwq.webp]()
相关链接
CentOS 7 编译安装 nginx 并启用 TLS1.3