我最近使用以下命令重新生成了从 Gandi 购买的 SSL 证书:
openssl req -nodes -newkey rsa:2048 -sha256 -keyout server.key -out server.csr
这会生成 2 个文件,server.csr
然后server.key
我将签名请求上传到 Gandi,Gandi 会给我我的服务器证书以及一个中间证书。然后我将它们连接起来。
cat my-cert-from-gandi.crt intermediate.crt > chained-certificate.crt
然后在我的 nginx 配置中:
ssl on;
ssl_certificate /etc/nginx/certificates/chained-certificate.crt;
ssl_certificate_key /etc/nginx/certificates/server.key;
然后,当我尝试测试此配置(nginx -t
)时,我收到以下输出:
nginx: [emerg]
SSL_CTX_use_PrivateKey_file("/etc/nginx/certificates/server.key")
failed (SSL: error:0B080074:x509 certificate
routines:X509_check_private_key:key values mismatch)
的模量server.key
与 的模量相匹配server.csr
。然而 的模量my-cert-from-gandi.crt
却不不是匹配我的私钥的模数......
这里的一个潜在提示是,自从我上次执行此操作以来,Gandi 的中间证书似乎已经发生了变化。以前它包含一个BEGIN/END
块,现在包含两个。不确定这是否意味着我必须做些不同的事情。
任何帮助深表感谢。
答案1
要么您从 CA 下载了错误的签名证书,要么 CA 犯了一个奇怪的错误(并且设法破坏您的密钥、签署不同的密钥等)。
最好的做法是联系 CA,看看他们是否愿意帮助你,在你仔细检查你是否下载了正确的签名证书之后。他们应该撤销他们签名的证书,然后重新签署你的 CSR。
这与中级 CA 证书没有任何关系。