宝塔面板nginx站点多域名启动ssl的几种方法 -j9九游会真人游戏第一品牌

本文将介绍nginx站点多域名启动ssl的方法,如何在不影响已部署ssl的情况下为当前站点重新部署新域名ssl,以及检查证书和密钥是否匹配等问题

问题描述

当一个站点同时添加了多个域名后且需要同时开启ssl时,可为多个域名同时申请公用证书直接部署即可。

如果站点已经开启了ssl,后续增加新域名也要求开启ssl时:

解决方法有两种:

  1. 重新为所有域名申请公用证书,重新部署

    此种方法优点是所有证书到期时间一致,缺点是已经开启的域名需要重新部署,中间会中断ssl

  2. 单独为新域名部署nginx server模块

    此种方法优点是不会影响其他已部署域名,缺点是域名证书到期时间不一致

具体实现

  1. 重新为所有域名申请公用证书,重新部署

    直接在宝塔面板中关闭ssl,再选择所有域名重新申请ssl部署即可

  2. 单独为新域名部署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
        # 其他部分省略
    }
    

nginx站点配置ssl

检查证书和密钥是否匹配

为防止配置的证书有误,可先进行证书检查

# 使用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
  1. 此命令可显示证书的详细信息,其中包括“subject”字段。该字段应包含与您的域名匹配的常规名称(cn)或替代名称(san)。
  2. 确认证书的cn或san字段与您的域名匹配。例如,域名是imiseo.com,则您的证书应具有cn或san字段包含“imiseo.com”作为其中一个值。

使用以下命令检查指定证书是否过期

openssl x509 -in ./fullchain.pem -noout -checkend 86400

使用php openssl扩展检查域名证书是否匹配


原文链接:宝塔面板nginx站点多域名启动ssl的几种方法


发表评论 登录

目前评论:0