一聚教程网:一个值得你收藏的教程网站

热门教程

Apache 生产环境中配置单向认证如何做

时间:2026-08-17 20:14:49 编辑:袖梨 来源:一聚教程网

Apache生产环境单向HTTPS认证核心是部署可信CA签发的证书并强化TLS策略:启用mod_ssl、配置fullchain.pem和privkey.pem路径、禁用SSLv2-v3及TLSv1.1、设置前向保密密码套件、添加HSTS头,并配置HTTP到HTTPS自动跳转。

Apache 生产环境中配置单向 HTTPS 认证,核心是让客户端(浏览器)验证服务器身份并加密通信,不强制要求客户端提供证书。整个过程围绕 SSL/TLS 证书部署展开,需确保安全性、兼容性和可维护性。

1. 获取可信的服务器证书

生产环境严禁使用自签名证书,必须由受信任的 CA(如 Let's Encrypt、DigiCert、Sectigo)签发。

  1. 推荐使用 Let's Encrypt(免费、自动化、广泛信任),通过 Certbot 工具一键申请:

    certbot --apache -d example.com -d www.example.com

    它会自动获取证书(fullchain.pem)、私钥(privkey.pem),并完成 Apache 配置修改。

  2. 若使用商业证书,需将 CA 提供的证书链文件(含中间证书)与服务器证书合并为 fullchain.pem,避免浏览器“证书链不完整”警告。
  3. 私钥文件权限必须严格限制:

    chmod 600 /etc/letsencrypt/live/example.com/privkey.pem

2. 启用并配置 mod_ssl 模块

确保 Apache 已加载 SSL 模块,并监听 443 端口。

  1. 检查模块是否启用:

    a2enmod ssl(Debian/Ubuntu)或确认 LoadModule ssl_module modules/mod_ssl.sohttpd.conf 中未被注释(RHEL/CentOS)。

  2. 在虚拟主机配置中启用 HTTPS 监听:

    <VirtualHost *:443>

    ServerName example.com

    SSLEngine on

    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem

    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

3. 强化 TLS 安全策略

默认配置可能启用弱协议或密码套件,需主动加固。

  1. 禁用不安全协议:

    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    (仅保留 TLSv1.2 和 TLSv1.3)

  2. 指定强密码套件(优先前向保密):

    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384

  3. 启用 HSTS(强制浏览器后续只走 HTTPS):

    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

4. HTTP 自动跳转 HTTPS

防止用户误访问 HTTP 端口,提升安全性和 SEO。

  1. 在 80 端口虚拟主机中添加重定向:

    <VirtualHost *:80>

    ServerName example.com

    Redirect permanent / https://example.com/

    </VirtualHost>

  2. 或使用 mod_rewrite 实现更灵活控制(如排除特定路径)。

配置完成后,重启 Apache 并用 SSL Labs Test 验证评分,目标应达 A 或 A+。证书需定期更新(Let's Encrypt 默认 90 天),建议配置自动续订任务(如 systemd timer 或 cron)。

热门栏目