1. 安装 Apache 和 SSL 模块

2. 创建证书存放目录

场景 1:证书文件为 *.cn_chain.crt + *.cn_public.crt + *.key

步骤 1:合并证书文件

将服务器证书(public.crt)和中间证书(chain.crt)合并(也可以不合并 直接在SSLCertificateFile属性引入 public.crt ):

步骤 2:复制私钥和证书到安全目录

步骤 3:配置 Apache SSL 虚拟主机

编辑配置文件(如 /etc/apache2/sites-available/ssl.conf):

场景 2:证书文件为 *_com.crt + *_com.ca-bundle + *_com.key

步骤 1:复制证书文件到目录

步骤 2:配置 Apache SSL 虚拟主机

编辑配置文件(如 /etc/apache2/sites-available/ssl.conf):

场景 3:使用系统默认自签名证书(snakeoil)

Debian 预生成的 ssl-cert-snakeoil.pem(证书+链)和 ssl-cert-snakeoil.key(私钥)位于以下路径:

  • 证书文件:/etc/ssl/certs/ssl-cert-snakeoil.pem
  • 私钥文件:/etc/ssl/private/ssl-cert-snakeoil.key

配置步骤

1. 确认证书文件存在

检查默认证书是否已生成:

  • 如果文件不存在,安装 ssl-cert 包生成:

2. 配置 Apache 使用默认证书

编辑 SSL 虚拟主机配置文件(如 /etc/apache2/sites-available/default-ssl.conf):

3. 启用 SSL 模块和站点

通用后续步骤

1. 启用 SSL 站点并检查配置

2. 强制 HTTPS 重定向(可选)

编辑 HTTP 虚拟主机(/etc/apache2/sites-available/000-default.conf):

证书验证与测试

  1. SSLCertificateFile 和 SSLCertificateKeyFile 属性 是必须存在的, SSLCertificateChainFile属性是可选参数
  2. 检查证书链完整性

3. 验证证书和私钥是否匹配

两次输出必须一致,否则证书和私钥不匹配,需重新签发证书。

 

故障排查表

 

现象 原因 解决方案
AH02572: 无证书配置 证书路径错误或缺失 检查 SSLCertificateFile 路径
SSL_ERROR_SYSCALL 私钥权限过宽 chmod 600 私钥文件
浏览器提示证书链不完整 中间证书未正确配置 合并证书或指定 SSLCertificateChainFile
AH02240: 无效证书 证书与私钥不匹配 重新生成或获取匹配的证书

 

按此教程操作,即可在 Debian 上为 Apache 正确配置两种类型的 SSL 证书。遇到具体错误时,可结合日志 (/var/log/apache2/error.log) 进一步排查。