本文将介绍nginx站点多域名启动ssl的方法,如何在不影响已部署ssl的情况下为当前站点重新部署新域名ssl,以及检查证书和密钥是否匹配等问题
问题描述
当一个站点同时添加了多个域名后且需要同时开启ssl时,可为多个域名同时申请公用证书直接部署即可。
如果站点已经开启了ssl,后续增加新域名也要求开启ssl时:
解决方法有两种:
-
重新为所有域名申请公用证书,重新部署
此种方法优点是所有证书到期时间一致,缺点是已经开启的域名需要重新部署,中间会中断ssl
-
单独为新域名部署nginx server模块
此种方法优点是不会影响其他已部署域名,缺点是域名证书到期时间不一致
具体实现
-
重新为所有域名申请公用证书,重新部署
直接在宝塔面板中关闭ssl,再选择所有域名重新申请ssl部署即可
-
单独为新域名部署nginx server模块
以下为在宝塔面板下演示,其他nginx环境对应修改即可,新加域名为'imiseo.com'
首先单独为域名imiseo.com申请域名证书并保存
在
/www/server/panel/vhost/nginx
下新建后缀为.conf
的配置文件,具体内容可参考当前目录下其他配置文件,新建的配置文件名例如imiseo.com.conf
# 只展示主要内容,其他内容参考/www/server/panel/vhost/nginx/下的配置文件 server { listen 80; listen 443 ssl http2; server_name imiseo.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/common.io/public; #ssl-start ssl相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; # 证书路径 ssl_certificate /www/server/panel/vhost/cert/imiseo.com/fullchain.pem; ssl_certificate_key /www/server/panel/vhost/cert/imiseo.com/privkey.pem; # ssl其他配置无须修改 ssl_protocols tlsv1.1 tlsv1.2 tlsv1.3; ssl_ciphers eecdh chacha20:eecdh chacha20-draft:eecdh aes128:rsa aes128:eecdh aes256:rsa aes256:eecdh 3des:rsa 3des:!md5; ssl_prefer_server_ciphers on; ssl_session_cache shared:ssl:10m; ssl_session_timeout 10m; add_header strict-transport-security "max-age=31536000"; error_page 497 https://$host$request_uri; #ssl-end #error-page-start 错误页配置,可以注释、删除或修改 #error_page 404 /404.html; #error_page 502 /502.html; #error-page-end # 其他部分省略 }
检查证书和密钥是否匹配
为防止配置的证书有误,可先进行证书检查
# 使用openssl命令工具 fullchain.pem为证书文件,privkey.pem为密钥文件 可相应替换
openssl x509 -noout -modulus -in ./fullchain.pem | openssl md5
openssl rsa -noout -modulus -in ./privkey.pem | openssl md5
如果证书和密钥匹配,则您将看到两个输出具有相同的md5散列值。如果不匹配,则您将看到两个输出具有不同的md5散列值
如何判断证书和域名是否匹配
# 使用以下命令获取证书的详细信息
openssl x509 -in /fullchain.pem -text -noout
- 此命令可显示证书的详细信息,其中包括“subject”字段。该字段应包含与您的域名匹配的常规名称(cn)或替代名称(san)。
- 确认证书的cn或san字段与您的域名匹配。例如,域名是imiseo.com,则您的证书应具有cn或san字段包含“imiseo.com”作为其中一个值。
使用以下命令检查指定证书是否过期
openssl x509 -in ./fullchain.pem -noout -checkend 86400
使用php openssl扩展检查域名证书是否匹配
目前评论:0