如何指定Let's Encrypt的Cipher Suit及在Ubuntu 20+Nginx环境查询配置
问题1:Let's Encrypt是否有默认的Cipher Suit(加密套件)?
- Let's Encrypt作为SSL证书颁发机构,仅负责签发身份验证用的SSL/TLS证书,不提供、也不设置任何默认加密套件,加密套件的配置和证书颁发机构完全无关。
问题2:是否可以通过Let's Encrypt相关文件查询当前使用的加密套件?
- 不可以。Let's Encrypt在服务器上存储的文件仅有证书公钥、私钥、证书链文件,没有任何和加密套件配置相关的内容。
- 你当前使用的加密套件配置存储在Nginx的配置文件中,可通过以下命令快速查找:
grep -r ssl_ciphers /etc/nginx/ - 要是想验证服务器实际对外生效的加密套件列表,可使用以下命令扫描:
nmap --script ssl-enum-ciphers -p 443 你的服务器IP/域名 - 补充说明:如果你使用certbot部署证书时允许了certbot自动修改Nginx配置,certbot会自动写入一套默认的加密套件规则,直接在对应站点的vhost配置(默认存放在
/etc/nginx/sites-available/目录下)就能查到。
问题3:一般情况下Cipher Suit是由哪一方决定的?
- 加密套件由服务端、客户端双方协商决定,协商流程如下:
- TLS握手阶段,客户端首先将自己支持的全部加密套件列表发送给服务端
- 服务端按照自身配置的允许加密套件列表、以及优先级规则,筛选出双方都支持的、优先级最高的加密套件使用
- 如果你的Nginx配置中开启了
ssl_prefer_server_ciphers on;(默认通常为开启状态),会优先以服务端配置的优先级选择套件;关闭该配置则会优先按照客户端的优先级选择。
内容的提问来源于stack exchange,提问作者Feynman137
相关产品推荐
相关产品推荐

