我已经将 Nginx 配置为以混合模式同时支持 ECC 和 RSA 证书。
启用后,使用以下 cmd 从我的服务器获取完整链证书:
openssl s_client -showcerts -connect server:443 -servername server-sni
然后我得到了三个证书,一个叶子证书,两个重复的中间证书(应该只有一个中间证书)。
我没有发现我的 nginx 配置有任何问题
#rsa
ssl_certificate /path/server_rsa-cert.pem;
ssl_certificate_key /path/server_rsa-key.pem;
# ecc
ssl_certificate /path/server_ecc-cert.pem;
ssl_certificate_key /path/server_ecc-key.pem;
然后我尝试删除 ECC 证书或 RSA 证书,运行 openssl 命令,之后没有重复的中间证书。
因此,似乎重复的中间证书仅当 Nginx 处于混合证书模式时才会发生。
对此有什么想法吗?
答案1
好吧,经过一番研究,我发现所有这些问题都是由我使用的旧 libressl 版本引起的。将 libressl 版本升级到 2.9.2,然后编译 Nginx 解决了此问题。