环境: 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 2017-04-07 04:57:51 +08:00
@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 1
要依照 域名证书 -> 中间证书 -> 根证书 的顺序串联为证书链,才能被绝大多数浏览器信任
参考: 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/
|