apache部署商业ssl证书的核心是三步:准备证书文件(域名证书、私钥、中间证书并合并为fullchain.crt)、启用mod_ssl与mod_rewrite模块、配置443端口虚拟主机及80端口301跳转,全程手动可控,适合生产环境。

Apache 使用第三方商业证书机构(如 DigiCert、GlobalSign、阿里云、腾讯云等)颁发的证书,核心是把证书、私钥和中间证书正确归位,并启用 SSL 模块与 HTTPS 虚拟主机。整个过程不依赖自动化工具,手动配置更可控,也更适合生产环境长期稳定运行。
证书文件准备与链合并
从 CA 下载的 Apache 格式证书包通常含三个关键文件:
-
域名证书(如
www.example.com.crt):你的站点身份凭证,仅对指定域名有效 -
私钥文件(如
www.example.com.key):生成 CSR 时一同创建,必须严格保密,权限设为600 -
中间证书(如
ca-bundle.crt或intermediate.crt):构建信任链必需,漏掉会导致部分安卓、旧系统或浏览器提示“证书不可信”
将域名证书和中间证书按顺序合并为一个链文件(顺序不能错):
cat www.example.com.crt ca-bundle.crt > fullchain.crt
启用必要模块并检查配置路径
确保 Apache 已加载 mod_ssl 和 mod_rewrite(后者用于强制跳转):
apachectl -M | grep -E "(ssl|rewrite)"
若未启用,在主配置中取消注释:
LoadModule ssl_module modules/mod_ssl.soLoadModule rewrite_module modules/mod_rewrite.so
把 fullchain.crt 和 www.example.com.key 放到服务器安全目录(如 /etc/ssl/certs/ 和 /etc/ssl/private/),确认私钥权限为 600:
chmod 600 /etc/ssl/private/www.example.com.key
配置 443 端口虚拟主机
在站点配置文件(如 /etc/apache2/sites-available/example-ssl.conf)中添加标准 HTTPS 块:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<virtualhost>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.crt
SSLCertificateKeyFile /etc/ssl/private/www.example.com.key
# 禁用老旧协议提升安全性
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder on
</virtualhost>
注意:SSLCertificateFile 必须指向合并后的 fullchain.crt,不是原始域名证书单文件。
HTTP 自动跳转 HTTPS(301 强制加密)
在 80 端口虚拟主机中添加重定向规则:
<virtualhost>
ServerName example.com
Redirect permanent / https://example.com/
</virtualhost>
或使用 RewriteRule(需确保 mod_rewrite 已启用):
<virtualhost>
ServerName example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</virtualhost>
配置完成后务必验证语法:
apachectl configtest
无报错再重启服务:
systemctl restart apache2
最后用 SSL Labs 测试评级,目标应达 A 或 A+ 级。










