在我们开发系统的过程当中,可能会遇到这个实例情况,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里面的部署按钮,否则会覆盖你刚编辑保存的配置文件。
因此最好把配置文件的内容复制下来保存一份,防止以后误操作覆盖