Apache2上ssl证书部署

更新时间:2026-01-21 来源:TopSSL 作者:TopSSL

Apache2 常用 SSL 证书部署流程与配置文件详解

本文主要探讨在 Apache 2.x 架构中通过 mod_ssl 模块实现 HTTPS 加密通信的标准化流程。技术核心在于正确关联服务器公钥证书、中间证书链以及本地生成的私钥,并确保 Apache 虚拟主机(VirtualHost)在 443 端口上能够准确挂载这些密钥文件,从而完成从非加密 HTTP 到加密 HTTPS 的安全升级。

证书文件的准备工作、需要3个文件

在正式进入 Apache 配置前,需确保 ssl证书 相关文件的完整性与格式正确。通常从 CA 机构获取的证书包需要按照以下逻辑拆解:

  1. 服务器证书文件。从证书邮件中提取出第一段包括横线 -----BEGIN CERTIFICATE----------END CERTIFICATE-----,复制保存为server.crt.(注:文件名和后缀随意起)
  2. 证书链文件。从证书邮件中提取第二段+第三段代码,是将两段代码按顺序保存到一个文件里,复制保存为ca.crt。中间不需要空行。类似下图效果证书链文件
  3. 私钥文件。这个文件是和在下订单时候需要用的证书请求文件(csr)一起生成的。文件已文本格式打开的话。开头是-----BEGIN RSA PRIVATE KEY-----开头的。文件名可能是server.key或者key.txt等(这个文件找不到的话,问下下订单的相关同事,如果找不到的话是部署不了的)

部署过程

  1. mod-aviable中的 ssl.conf ssl.load这两个配置文件,复制到 mod-enable中。(这一步是启用ssl,这部配置完成后,443端口就能起来,但不一定能加载成功证书)
  2. site-aviable中的 default-ssl配置,加载到 site-enable中(相当于创建了443的vhost,当然也可以自己创建host的配置文件)
  3. 更新3个属性
    SSLCertificateFile /xxxx/server.crt (这里选择上述文件中的第一个文件)
    SSLCertificateKeyFile /xxxx/server.key (这里选择上述文件中的第三个文件)
    SSLCertificateChainFile /xxxx/ca.crt (这里选择上述文件中的第二个文件)
  4. 重启apache2服务

注:默认的 default-ssldcomentRoot和80的可能不一致,可修改成与其一致。如果需要强制http跳转https的,在80的配置文件里,添加rewrite规则(需apache2有rewrite功能模块)。
简单如:

RewriteEngine on
RewriteRule ^(.*) https://{http_host}$1 [L,N]

这里的 R=301 比起原稿中的 N 模式在 SEO 权重传递上更具优势,能明确告知搜索引擎页面已永久迁移。
具体的则请参阅apache官方的rewrite的文档,按需进行配置。

常见问题整理

配置了 SSL 但浏览器提示证书链不完整?

是因为 SSLCertificateChainFile 指向的文件没有正确合并中间证书,或者在 Apache 2.4.8 以后的版本中,未将中间证书内容直接追加到 SSLCertificateFile 指向的文件末尾。

找不到私钥文件 server.key 怎么办?

私钥不在证书颁发机构手中,而是在生成 CSR 的服务器上。如果彻底遗失,唯一的办法是重新生成 CSR 并进行证书重签(Reissue)。

80 端口跳转 https 循环重定向了?

检查跳转规则是否写在了 443 端口的配置内,或者是 RewriteCond 判定条件缺失,导致 HTTPS 请求又被重写回了自身。

Apache 部署 SSL 后服务无法启动如何排查?

首选查看错误日志(error.log),通常是由于私钥与证书不匹配或文件路径权限导致 Apache 无法读取。

标签

有用
分享
无用
反馈
返回顶部
0 个回答
13 次浏览
立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 | 快速实现HTTPS加密与付费证书申请 - TopSSL
提供免费与付费SSL证书申请
微信公众号二维码 扫一扫在线咨询
关注 TopSSL 公众号, RSS订阅 SSL资讯与技术支持

2004-2026 © 北京传诚信  版权所有 | TopSSL提供免费SSL证书与付费证书,快速实现HTTPS加密  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn