如何在Ubuntu的Apache2服务器上配置子域名共享主域名SSL证书
最简配置Apache2子域名共享主域名SSL证书(Ubuntu系统)
前提确认
- 已创建
/var/www/privacy目录 privacy.example.com的DNS解析已生效- 主域名
example.com的SSL证书支持该子域名(通配符证书*.example.com或包含privacy.example.com的SAN证书)
步骤1:配置HTTP端口(80)重定向
编辑/etc/apache2/sites-available/000-default.conf,在现有<VirtualHost>块下方添加以下配置:
<VirtualHost *:80> ServerName privacy.example.com Redirect permanent / https://privacy.example.com ErrorLog ${APACHE_LOG_DIR}/privacy-error.log CustomLog ${APACHE_LOG_DIR}/privacy-access.log combined </VirtualHost>
步骤2:配置HTTPS端口(443)子域名站点
编辑/etc/apache2/sites-available/example.com-ssl.conf,在现有<VirtualHost>块下方添加以下配置(直接复用主域名的SSL证书文件):
<VirtualHost *:443> Protocols h2 http/1.1 ServerName privacy.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/privacy SSLEngine on SSLCertificateFile /etc/ssl/example.com.crt SSLCertificateKeyFile /etc/ssl/example.com.key SSLCertificateChainFile /etc/ssl/example.com.ca-bundle ErrorLog ${APACHE_LOG_DIR}/privacy-error.log CustomLog ${APACHE_LOG_DIR}/privacy-access.log combined </VirtualHost>
步骤3:验证配置并重启Apache
- 检查配置语法是否正确:
apache2ctl configtest
- 若输出
Syntax OK,重启Apache服务:
systemctl restart apache2
说明
这种方式直接在现有配置文件中扩展,无需新建独立配置文件,利用Apache的NameVirtualHost特性,通过ServerName区分不同站点,同时复用主域名的SSL证书(只要证书覆盖该子域名即可),是最简洁的实现方式。
内容的提问来源于stack exchange,提问作者Pro Girl
相关产品推荐
相关产品推荐

