我最近必须在 Apache 2.4/Mod_ssl 服务器上更新我的一个 SSL 证书。
我有 2 个 Vhost,没有 SNI,每个都在单独的 NIC 上运行。到目前为止,证书都是 Globalsign OrganizationSSL,一个特定于 URL,另一个是通配符。所有这一切都运行良好。
我的客户想要一个扩展验证 SSL。我下载了此链运行所需的根 CA 和中级证书。但在切换证书时,我的 Apache 拒绝初始化该链。
我有以下错误:
- Apache 日志:[ssl:emerg] [pid 7394:tid 140377904683136] AH02311:初始化 mod_ssl 时发生致命错误,退出。
- Vhost 日志:[ssl:emerg] [pid 7394:tid 140377904683136] AH01903:无法配置 CA 证书链!
我的 Vhost SSL 配置:
Vhost 1(组织 SSL):
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EDH:!DHE:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLHonorCipherOrder on
SSLCertificateFile /path/to/organization.crt
SSLCertificateKeyFile /path/to/server.key
SSLCertificateChainFile /path/to/intermediate.pem
Vhost 2(扩展验证 SSL):
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCACertificateFile /path/to/gs_root_ca.crt
SSLCertificateChainFile /path/to/intermediate.crt
SSLCertificateFile /path/to/extended_validation.crt
SSLCertificateKeyFile /path/to/server2.key
我不是 SSL 专家,我不明白为什么扩展验证和组织 SSL 证书不能共存。
我尝试删除一个 Vhost,另一个 Vhost 运行正常。因此,我被迫禁用最少使用的 Vhost,以便主要生产后台能够正常工作。
您是否遇到过此类错误?这是正常现象吗?我该怎么做才能让我的两个网站再次运行?
感谢您的专业知识!
答案1
您的设置不正确。
我们来回忆一下:
- SSL证书密钥文件加载私钥(你做得很好)
- SSL证书文件加载服务器证书链。这是服务器证书及其签名 CA 从叶(证书)到根(更高级别的 CA)排序。
- SSL证书链文件 已弃用在 apache 2.4 中,因此删除这一个。
- SSLCA证书文件为将使用客户端证书通过 SSL 进行身份验证的客户端加载 CA。这是您要用于 SSL 客户端身份验证的然后。
边注:您的密码套件乍一看似乎非常不正确且不安全。值得检查一下是否也进行了更改。
编辑根据评论。 对于 2.4.6 及更早版本,你应该:
- SSL证书文件加载服务器证书。
- SSL证书链文件加载服务器证书 CA 链。
- SSLCA证书文件为将使用客户端证书通过 SSL 进行身份验证的客户端加载 CA。这是您要用于 SSL 客户端身份验证的然后。