zoukankan      html  css  js  c++  java
  • 同一个主机头的多域名绑定多个ssl证书的方法

    在我们开发系统的过程当中,可能会遇到这个实例情况,a.com,b.com,c.com同时指向同一个系统,但是如果我们以同一个主机头去设置a.com,b.com,c.com的时候,只能默认绑定一个域名的ssl证书,我们需求是在同一个主机头里同时绑定多个域名证书,类似这样的

    https://a.com
    https://b.com
    https://c.om

    铁牛以宝塔系统的方式来给大家做个实例,以下是操作步骤

    1、比如a.com b.com c.com 同时绑定一个网站

    2、申请证书,获取pem、key

    3、开启a.com 的ssl

    4、点击左侧配置文件

    <VirtualHost *:80>
        ServerAdmin webmaster@example.com
        DocumentRoot "/www/wwwroot/test.com/public"
        ServerName 7277db5a.test.com
        ServerAlias a.com b.com c.com
        #errorDocument 404 /404.html
        ErrorLog "/www/wwwlogs/test.com-error_log"
        CustomLog "/www/wwwlogs/test.com-access_log" combined
        
        #DENY FILES
         <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
           Order allow,deny
           Deny from all
        </Files>
        
        #PHP
        <FilesMatch \.php$>
                SetHandler "proxy:unix:/tmp/php-cgi-74.sock|fcgi://localhost"
        </FilesMatch>
        
        #PATH
        <Directory "/www/wwwroot/test.com/public">
            SetOutputFilter DEFLATE
            Options FollowSymLinks
            AllowOverride All
            Require all granted
            DirectoryIndex index.php index.html index.htm default.php default.html default.htm
        </Directory>
    </VirtualHost>
    <VirtualHost *:443>
        ServerAdmin webmasterexample.com
        DocumentRoot "/www/wwwroot/test.com/public"
        ServerName SSL.abc.com
        ServerAlias a.com 
        #errorDocument 404 /404.html
        ErrorLog "/www/wwwlogs/test.com-error_log"
        CustomLog "/www/wwwlogs/test.com-access_log" combined
        
        #SSL
        SSLEngine On
        SSLCertificateFile /www/server/panel/vhost/cert/a.com/fullchain.pem
        SSLCertificateKeyFile /www/server/panel/vhost/cert/a.com/privkey.pem
        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol All -SSLv2 -SSLv3 -TLSv1
        SSLHonorCipherOrder On
        
        #PHP
        <FilesMatch \.php$>
                SetHandler "proxy:unix:/tmp/php-cgi-74.sock|fcgi://localhost"
        </FilesMatch>
        
     
        #DENY FILES
         <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
           Order allow,deny
           Deny from all
        </Files>
     
        #PATH
        <Directory "/www/wwwroot/test.com/public">
            SetOutputFilter DEFLATE
            Options FollowSymLinks
            AllowOverride All
            Require all granted
            DirectoryIndex index.php index.html index.htm default.php default.html default.htm
        </Directory>
    </VirtualHost>

    5、可以看到<VirtualHost *:443>标签内只配置了a.com的ssl证书。复制此标签内容,配置 b.com 和 c.com (其他部分省略) 需要改变的就三行

    <VirtualHost *:443>
       ...
        ServerAlias a.com 
       ...
        SSLCertificateFile /www/server/panel/vhost/cert/a.com/fullchain.pem
        SSLCertificateKeyFile /www/server/panel/vhost/cert/a.com/privkey.pem
          ...
    </VirtualHost>

    把B、C相应的证书放到 /www/server/panel/vhost/cert/*****.com/fullchain.pem 、 /www/server/panel/vhost/cert/*****.com/privkey.pem

    点击保存。

    注:配置好后就可以正常访问 htttps://a.com htttps://b.com htttps://c.com

    不要再点击ssl里面的部署按钮,否则会覆盖你刚编辑保存的配置文件。

    因此最好把配置文件的内容复制下来保存一份,防止以后误操作覆盖

  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/keleyu/p/15705886.html
Copyright © 2011-2022 走看看