最近有个打算用子目录做二级域名,在宝塔面板中可以直接绑定,但是无法对二级域名开启ssl(https)。
本人小白,查询了很多相关资料整理出两个开启二级域名ssl(https)的方法,没有测试但是应该可以使用。
方法一:为子目录域名单独创建网站
比如,创建 music.guapizhu.com 域名网站,网站根目录则选择主站点的一个子目录。
这样,我们就可以给这个二级域名申请SSL证书了。瓜皮猪使用的是阿里云的免费SSL,可以建立20个免费SSL证书,完全够我们使用需求。
在阿里云域名管理面板,解析二级域名到指定的 IP,并申请SSL证书,然后直接添加即可。
方法二:修改网站配置文件
1、先给网站子目录绑定好域名,并且上传配置好域名证书,这里我没有使用宝塔自带的域名证书未做测试,我是上传的其它平台申请的好的证书。
2、修改网站配置文件
修改前请一定先备份里面的默认配置,以免出错无法恢复
- <VirtualHost *:443>
- ServerAdmin webmasterexample
- DocumentRoot “/www/wwwroot/二级域名/music/” //这里修改为你实际的子目录路径
- ServerName SSL.二级域名 //这里SSL.后面修改为您二级网站的域名
- ServerAlias 二级域名 //这里同上修改为您二级网站的域名
- errorDocument 404 /404.html
- ErrorLog “/www/wwwlogs/二级域名-error_log” //这里的域名相应的改过来
- CustomLog “/www/wwwlogs/二级域名-access_log” combined //这里的域名相应的改过来
- #SSL
- SSLEngine On
- SSLCertificateFile /etc/letsencrypt/live/二级域名/*****_public.crt //此处为重点,请把路径修改为上面证书上传的实际路径
- SSLCertificateKeyFile /etc/letsencrypt/live/二级域名/*****_.key //此处为重点,请把路径修改为上面证书上传的实际路径
- SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
- SSLProtocol All -SSLv2 -SSLv3
- SSLHonorCipherOrder On
- #PHP
- <FilesMatch .php$>SetHandler “proxy:unix:/tmp/php-cgi-70.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/二级域名/music”> //这里修改为你实际的子目录路径
- SetOutputFilter DEFLATE
- Options FollowSymLinks
- AllowOverride All
- Require all granted
- DirectoryIndex index.php index.html index.htm default.php default.html default.htm</Directory>
- </VirtualHost>
建议尽量使用第一种方法。