Apache生产环境单向HTTPS认证核心是部署可信CA签发的证书并强化TLS策略:启用mod_ssl、配置fullchain.pem和privkey.pem路径、禁用SSLv2-v3及TLSv1.1、设置前向保密密码套件、添加HSTS头,并配置HTTP到HTTPS自动跳转。
Apache 生产环境中配置单向 HTTPS 认证,核心是让客户端(浏览器)验证服务器身份并加密通信,不强制要求客户端提供证书。整个过程围绕 SSL/TLS 证书部署展开,需确保安全性、兼容性和可维护性。
生产环境严禁使用自签名证书,必须由受信任的 CA(如 Let's Encrypt、DigiCert、Sectigo)签发。
certbot --apache -d example.com -d www.example.com
它会自动获取证书(fullchain.pem)、私钥(privkey.pem),并完成 Apache 配置修改。
fullchain.pem,避免浏览器“证书链不完整”警告。chmod 600 /etc/letsencrypt/live/example.com/privkey.pem
确保 Apache 已加载 SSL 模块,并监听 443 端口。
a2enmod ssl(Debian/Ubuntu)或确认 LoadModule ssl_module modules/mod_ssl.so 在 httpd.conf 中未被注释(RHEL/CentOS)。
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
默认配置可能启用弱协议或密码套件,需主动加固。
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
(仅保留 TLSv1.2 和 TLSv1.3)
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
防止用户误访问 HTTP 端口,提升安全性和 SEO。
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
mod_rewrite 实现更灵活控制(如排除特定路径)。配置完成后,重启 Apache 并用 SSL Labs Test 验证评分,目标应达 A 或 A+。证书需定期更新(Let's Encrypt 默认 90 天),建议配置自动续订任务(如 systemd timer 或 cron)。