【问题标题】:SSL over FQDN vs IP基于 FQDN 的 SSL 与 IP
【发布时间】:2015-09-25 17:18:36
【问题描述】:

Apache 2.2、CentOS 6、Godaddy SSL(多域)。

在 CentOS 上的 Apache 2.2 上设置 Godaddy SSL(多域),我有一个有效的 SSL (https) 站点,但前提是我通过 IP 地址导航到服务器。如果我尝试解析为域名 (sub.domain.com),我会收到以下浏览器消息:

此网页不可用
ERR_CONNECTION_REFUSED

我已将日志记录设置为警告,并且我在 ssl 站点的日志中没有警告或错误。

我很困惑,为此问题搜索并遵循了许多解决方案,但仍然无法使用 FQDN 通过 https 解决我的网站。

任何指示或建议都会有很大帮助。下面是我用于 Apache 的 ssl.conf:

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog  builtin

SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300

SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost _default_:443>

DocumentRoot "/var/www/webdata/aaa.bbb.COM"
ServerName register.g1e.com:443

ErrorLog /var/www/webdata/aaa.bbb.COM/logs/ssl_error_log
TransferLog /var/www/webdata/aaa.bbb.COM/logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/aaa.bbb-com.crt

SSLCertificateKeyFile /etc/pki/tls/private/aaa.bbb-com.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>


SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0


CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost> 

【问题讨论】:

  • ERR_CONNECTION_REFUSED 表示连接没有通过,那是在 SSL 甚至 apache 参与之前。您确定您的 FQDN 解析为正确的 IP 吗?您确定 apache 正在侦听正确的端口吗?您确定没有防火墙阻止流量吗?
  • 我在 AWS EC2 上,我的公共 IP 是 54.173.114.65,但是当我跟踪 FQDN 路由时,我得到了 2 个额外的 IP。我认为这是由于负载平衡器?我还确保端口在防火墙中打开(我可以从 IP 访问 https,并且我有 apache Listen 443。所以我的问题是,是的,我确定 443 在服务器上是打开的,并且 Listen on Apache 正在工作通过 https 访问 IP 地址,但我无法通过 FQDN 访问 https
  • 我不知道。您是在查询您管理的 FQDN 还是 AWS 查询的 FQDN?其他两个 IP 地址是否响应 443 上的请求?对您的 IP 进行反向查找会返回什么?那另外两个呢?

标签: apache ssl https centos


【解决方案1】:

伊坦,

感谢您的回复。以下是我的发现,幸运的是,我与一些知识渊博的朋友进行了几次对话,引发了一些思考。

对于 Amazon EC2 负载平衡服务器,您将获得服务器的 IP 地址。如果您还使用 Route53,则会为您提供 Alias A Name 堆栈地址。这将解析为与别名 A 名称相关的 2 个新 IP 地址。这会创建并发出问题,因为 SSL 正在侦听服务器 IP 的 443 并且流量将进入别名 IP。

为了解决这个问题,我去了我在 Route53 中的域的区域,并将 A 名称的记录设置为服务器的静态 IP,并且没有使用 IPV4 A 名称的别名。

有趣的是,几次对话会促使您尝试新事物并获得成功!你想办法。

感谢您的重播,并认为此帖子已解决。

我今天还发现了一些关于单个 IP 上的多个 SSL 的好消息可能对其他人有所帮助...

https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm

AWS EC2 服务器唯一需要记住的是将 DNS 设置为服务器的静态公共 IP,并且不要将负载均衡器堆栈 IP 或端点别名用于 DNS 记录。

马库斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2014-12-07
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多