1.报错
1.1 看到这个报错都知道啥意思:
网上查询有说需要换证书的,但是这是我自己建的私有CA,重新创建几次也没有报错
[root@centos8 /apps/nginx]#nginx -t
nginx: [emerg] SSL_CTX_use_PrivateKey("/apps/nginx/certs/www.xlj.org.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /apps/nginx/conf/nginx.conf test failed
1.2.解决:
一般出现这个报错的话,都是因为把证书进行捆绑到一个文件中–( your certificate, then the signing certificates,即服务器证书,ca证书),但是很容易就会将这两个文件的顺序搞错,导致证书和服务器私钥不匹配,然后就会报上面的错
所以重新生成证书,把顺序调整正确就可以了,
# xlj.org.crt 服务器证书
# ca.crt ca 证书
[root@centos8 /apps/nginx/certs]#cat xlj.org.crt ca.crt > www.xlj.org.pem
即下面的步骤中 合并证书的步骤就是我报错的原因
2.下面是我证书的生成然后报错步骤:
1.生成证书步骤:
用自己的脚本生成ca 的私钥和证书,然后生成服务器的私钥,证书申请文件,服务器的证书文件
3.将ca 和服务器的证书合并到一个文件
[root@centos8 /apps/nginx/certs]#cat ca.crt xlj.org.crt > www.xlj.org.pem
[root@centos8 /apps/nginx/certs]#ll
total 28
-rw-r--r-- 1 root root 1322 May 20 11:34 ca.crt
-rw------- 1 root root 1704 May 20 11:34 ca.key
-rw-r--r-- 1 root root 507 May 20 11:34 cert.sh
-rw------- 1 root root 1704 May 20 11:34 www.xlj.org.key ## 服务器私钥
-rw-r--r-- 1 root root 2502 May 20 11:35 www.xlj.org.pem ###证书文件
-rw-r--r-- 1 root root 1180 May 20 11:34 xlj.org.crt
-rw-r--r-- 1 root root 1001 May 20 11:34 xlj.org.csr
4.修改nginx 的配置文件
[root@centos8 /apps/nginx]#vim conf/nginx.conf
...
server {
listen 80;
listen 443 ssl;
server_name www.xlj.org;
ssl_certificate /apps/nginx/certs/www.xlj.org.pem;
ssl_certificate_key /apps/nginx/certs/www.xlj.org.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
....
#检查文件的时候就报错:
[root@centos8 /apps/nginx]#nginx -t
nginx: [emerg] SSL_CTX_use_PrivateKey("/apps/nginx/certs/www.xlj.org.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /apps/nginx/conf/nginx.conf test failed