【问题标题】:Apache 2 types SSl using VirtualHosts使用 VirtualHosts 的 Apache 2 类型 SSL
【发布时间】:2011-04-04 04:04:09
【问题描述】:

我有 2 个不同的应用程序。

1) tools.helpme.com要求用户提供客户端证书!

SSLCACertificateFile /usr/local/etc/apache22/certs/cacert.pem
SSLCertificateKeyFile /usr/local/etc/apache22/certs/server.key
SSLCertificateFile /usr/local/etc/apache22/certs/server.crt
SSLCertificateChainFile /usr/local/etc/apache22/certs/server.crt
SSLVerifyClient require

2) apps.helpme.com 仅需要来自服务器的基本 SSL!

SSLCACertificateFile /usr/local/etc/apache22/certs/cacert.pem
SSLCertificateKeyFile /usr/local/etc/apache22/certs/server.key
SSLCertificateFile /usr/local/etc/apache22/certs/server.crt
SSLCertificateChainFile /usr/local/etc/apache22/certs/server.crt
SSLVerifyClient none

我让他们每个人都独立工作 - 这是完美的。

但是,我无法让它们同时运行,它们位于不同的 VirtualHosts - 基于名称的主机上。

如果我尝试同时运行它们,似乎 (2) 优先且有效,但 (1) 获得 GATEWAY_TIMEOUT! 该虚拟主机的错误日志显示:重新协商握手失败:客户端不接受!?

【问题讨论】:

    标签: apache ssl openssl virtualhost httpd.conf


    【解决方案1】:

    您需要两个不同 IP 地址上的站点,因为 SSL 握手发生在发送 HOST http 标头之前。您可以使用相同的 IP 在不同的端口号上运行,但这对于两个不同的 Web 服务并没有真正的帮助?

    【讨论】:

    • 谢谢。经过更多调查,这似乎很常见,我可以为此使用 SNI - 如果 openssl、apache 和浏览器支持它(在我的情况下不是这样)。看起来我必须设置一个单独的服务器,操作系统对两个应用程序使用相同的 SSL。
    猜你喜欢
    • 1970-01-01
    • 2010-11-30
    • 2014-02-07
    • 2012-07-19
    • 2018-07-28
    • 2016-08-01
    • 1970-01-01
    • 2014-03-04
    • 2018-05-25
    相关资源
    最近更新 更多