【问题标题】:Multiple SSL certificates Apache2多个 SSL 证书 Apache2
【发布时间】:2012-04-11 20:28:23
【问题描述】:

secure.dynaccount.com(解冻证书) http://certlogik.com/sslchecker/secure.dynaccount.com/

api.dynaccount.com(自签名) http://certlogik.com/sslchecker/api.dynaccount.com/

httpd.conf

# Thawte certified
<VirtualHost 88.198.55.138:443>
    ServerName secure.dynaccount.com
    DocumentRoot /var/www/dynaccount.com

    SSLEngine on
    SSLCertificateKeyFile /var/ini/ssl/secure.dynaccount.com/private.key
    SSLCertificateFile /var/ini/ssl/secure.dynaccount.com/public.crt
    SSLCertificateChainFile /var/ini/ssl/secure.dynaccount.com/intermediate.crt
    SSLVerifyDepth 1
    SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
</VirtualHost>

# self-signed
<VirtualHost 88.198.55.154:443>
    ServerName api.dynaccount.com
    DocumentRoot /var/www/dynaccount.com

    SSLEngine on
    SSLCertificateKeyFile /var/ini/ssl/api.dynaccount.com/private.key
    SSLCertificateFile /var/ini/ssl/api.dynaccount.com/public.crt
    SSLVerifyDepth 0
    SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
</VirtualHost>

【问题讨论】:

  • 不是一个编程问题 -> 投票支持迁移到 ServerFault。

标签: apache ssl certificate virtualhost


【解决方案1】:

您的问题是您有两次相同的 ServerName。

在您的第二个 VHost 中,您应该有 ServerName api.dynaccount.com 而没有 ServerAlias

我不确定是不是问题,但请尝试一下 :)


编辑: 对于Server could not reliably resolve server name 错误,您必须在 httpd.conf 中定义一个 ServerName(不是在 VirtualHost 中,这将是默认的服务器名称)

【讨论】:

  • 2 个通知?我也有,这个不用太担心。我认为这是因为您使用星号来定义 VirtualHost(就像我一样),而 Apache 不太喜欢它。到目前为止,他仍然理解它,所以我继续使用它并且它有效。
  • @haltanbush > Apache 甚至不会启动.. 所以我不能忽略它
  • [2012 年 3 月 28 日星期三 11:00:35] [notice] 请求优雅重启,正在重启 apache2:无法可靠地确定服务器的完全限定域名,使用 dynaccount.com 作为 ServerName
【解决方案2】:

您阅读过 Apache HTTP 文档吗?

http://httpd.apache.org/docs/2.0/vhosts/name-based.html

基于名称的虚拟主机不能与 SSL 安全服务器一起使用 由于 SSL 协议的性质。

每个 IP 可以有一个 SSL 主机。

原因?

SSL 连接参数是针对每个虚拟主机设置的,但必须在 httpd 读取主机 HTTP 标头之前进行协商。

这很有意义,不是吗?

更新:

将 SSLCACertificateFile 更改为 SSLCertificateChainFile 并根据docs 提供正确的文件格式或完全禁用客户端证书验证

【讨论】:

  • 你没有提到你使用SNI。你有SNI-capable apache运行吗?
  • 我不确定.. 已经用 openssl 信息更新了我的问题.. 我不知道如何检查 TLS 扩展是否已启用以及其他两个先决条件..
  • 基于文档 OpenSSL 必须已编译 enable-tlsext 选项。从您的 openssl 版本中我看不到它,所以可能没有。
  • 好的,我现在有一个额外的 IP 可用。但是当我重新启动服务器时,我收到一个错误。如果 api.dynaccount.com 被注释掉,则没有错误
  • 查看我关于 SSLCertificateChainFile 和 SSLVerifyDepth 的更新答案
猜你喜欢
  • 1970-01-01
  • 2013-08-02
  • 2017-10-12
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多