最近发现有同学Nginx配置HTTPS证书后Nginx无法启动,
这个可以通过执行nginx -t 命令和journalctl -xe命令可以看到报错信息如下:
nginx: [emerg] SSL_CTX_use_PrivateKey("/etc/nginx/cert/1.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
根据这个报错可以看出来是证书文件和私钥不匹配导致Nginx无法启动,然后我们可以使用下面命令用MD5值来分析证书文件和私钥文件是否匹配。(本文1.pem和1.key需要换成自己的证书和私钥名称)
查看证书文件MD5:
openssl x509 -noout -modulus -in 1.pem | openssl md5
查看私钥文件MD5:
openssl rsa -noout -modulus -in 1.key | openssl md5
测试信息如下,可以明显看出来证书文件和私钥MD5不匹配。需要在证书提供商处重新下载正确的证书上传到服务器即可正常启动Nginx。
另外关于证书和密钥还有一些常用的命令可以了解下。
查看证书绑定的域名:
openssl x509 -noout -text -in 1.pem |grep Subject:
查看证书申请和到期时间:
openssl x509 -noout -dates -in 1.pem
pem格式证书转cer格式证书:
openssl x509 -inform pem -in 1.pem -outform der -out 1.cer