Apache虚拟主机SSL证书安装核心是将.crt、.key、root_bundle.crt三文件存至/etc/httpd/conf/ssl/,在<VirtualHost *:443>块中配置SSLEngine on、SSLCertificateFile、SSLCertificateKeyFile和SSLCACertificateFile,并确保443端口开放及语法正确后重启服务。
为 Apache 虚拟主机安装 SSL/TLS 证书,核心是把证书文件放对位置、在正确的配置块里写对三条指令,并确保 443 端口可用。整个过程不依赖外部工具,纯手工配置即可生效。
从证书颁发机构(如 Let’s Encrypt、DigiCert 或腾讯云)下载 Apache 版本的证书包,解压后通常包含三个关键文件:
example.com.crt):服务器证书,即你的站点身份证明example.com.key):私钥文件,必须严格保密,权限建议设为 600
intermediate.crt):中间证书链,用于构建信任链将这三个文件统一存放到一个目录下,例如 /etc/httpd/conf/ssl/。如果目录不存在,可手动创建:sudo mkdir -p /etc/httpd/conf/ssl
确保 Apache 已加载 SSL 支持模块:
sudo yum install -y mod_ssl
sudo a2enmod ssl,然后重启 Apache安装后,/etc/httpd/conf.d/ssl.conf(或 /etc/apache2/mods-available/ssl.conf)会自动生成,无需手动加载 LoadModule ssl_module —— 除非你用的是极简编译版 Apache。
在 Apache 主配置(如 /etc/httpd/conf/httpd.conf)或站点专属配置(推荐放在 /etc/httpd/conf.d/example.com.conf)中,添加或修改一个 <VirtualHost *:443> 块:
httpd.conf 中是否有 Listen 443)SSLEngine onSSLCertificateFile /etc/httpd/conf/ssl/example.com.crtSSLCertificateKeyFile /etc/httpd/conf/ssl/example.com.keySSLCertificateChainFile /etc/httpd/conf/ssl/root_bundle.crt
SSLCACertificateFile 替代 SSLCertificateChainFile,效果相同ServerName example.com,并匹配证书所含域名执行两步检查,避免配置错误导致服务启动失败:
sudo apachectl configtest 或 sudo apache2ctl configtest,输出 Syntax OK 才继续sudo systemctl restart httpd(CentOS)或 sudo systemctl restart apache2(Ubuntu)sudo firewall-cmd --permanent --add-port=443/tcp(CentOS)或 sudo ufw allow 443(Ubuntu)浏览器访问 https://your-domain.com,地址栏出现锁形图标即表示部署成功。