
环境: LNMP vhost
状态:已经在服务器上面搭建了两个不同顶级域名的网站,其中一个已经使用了 SSL ,现在想让第二个网站也 https 访问。
按照这篇文章的方法
https://baohua.me/middleware/nginx/nginx-single-ip-address-to-configure-multiple-ssl-certificates/
现在是这样的
[root@CentOs ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.9.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.1h 5 Jun 2014
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=../openssl-1.0.1h/
但是修改第二个网站的 conf 文件之后
conf 如下:
server
{
listen 80; server_name xxx.domain.com; return 301 https://xxx.domain.come$request_uri; }
server
{ listen 443 ssl; #listen [::]:80; ssl on; ssl_certificate /root/xxx.domain.com.crt; ssl_certificate_key /root/xxx.domain.com.key; server_name xxx.domain.com; index index.html index.htm index.php default.html default.htm default.php; ..... 然后重启 Nginx 报错
[root@CentOs ~]# service nginx restart
Stoping nginx... nginx: [emerg] SSL_CTX_use_PrivateKey_file("/root/xxx.domain.com.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch) failed. Use force-quit
Starting nginx... nginx (pid 29963 29962) already running.
1 lemzon201314 OP 求大佬指点, O(∩_∩)O 谢谢 |
2 Pengg 2017-04-06 23:03:04 +08:00 第二个 conf 配置: server{ listen 443; # 去掉 ssl # ... } |
3 lemzon201314 OP @Pengg 仍然不行 |
4 fsgmhoward 2017-04-06 23:11:37 +08:00 via iPhone 他是告诉你 key 有问题 conf 没有问题 |
5 AirSc 2017-04-06 23:14:02 +08:00 via Android |
6 lemzon201314 OP @fsgmhoward 如何解决问题呢?谢谢 |
7 caola 2017-04-07 01:22:39 +08:00 |
8 ryd994 2017-04-07 03:24:50 +08:00 via Android 确认格式正确 不需要 ssl on ,这个选项已经官方废弃了 |
9 zhihaofans 2017-04-07 03:45:48 +08:00 via iPhone 证书有问题 |
10 Showfom PRO @lemzon201314 问给你证书的人 |
11 RobertYang 2017-04-07 07:43:49 +08:00 via Android 错误是证书错误啊,配置没问题 |
12 49degree 2017-04-07 07:55:45 +08:00 via Android 要依照 域名证书 -> 中间证书 -> 根证书 的顺序串联为证书链,才能被绝大多数浏览器信任 参考: https://doc.ssl.do/page/install-nginx/ 还有个坑, XP 永远只认服务器上第一个 SSL 证书 |
13 satifanie 2017-04-07 07:56:50 +08:00 证书合并的时候,应该把自己的域名签发的证书放到最上面,然后是中级 最后是根证书 |
15 lemzon201314 OP 现在是 Nginx 无法重启,而不是浏览器有问题 |
16 lemzon201314 OP 证书错误是不是原来配置第一个 SSL 时,添加了权限? openssl rsa -in ssl.key -out /root/ssl.key chmod 600 /root/ssl.key 是不是这里错了? |
17 lonelinsky 2017-04-07 10:40:11 +08:00 X509_check_private_key:key values mismatch 报错是这个应该不是权限的问题,而是 key 和证书不匹配,看看是不是申请证书的 CSR 并不是用的这个 key ? 仅猜测 |
18 lonelinsky 2017-04-07 10:44:03 +08:00 openssl x509 -noout -modulus -in certificate.crt | openssl md5 openssl rsa -noout -modulus -in privateKey.key | openssl md5 可以用这个方法检验证书和 private_key 是否匹配,摘录自 @AirSc 提到的回答 |
19 Rezark 2017-04-07 13:57:50 +08:00 公私钥不匹配! |
20 lemzon201314 OP 现在我弄好了, 我重新上传了.crt 和.key 没有重命名,接着重启 nginx 就成功了,现在不明白是什么原因 |
21 lemzon201314 OP @lemzon201314 写好了笔记 多谢各位指点了 https://www.lemzon.me/index.php/archives/19/ |