我在aws中托管域名,并希望允许https请求。我已经完成了以下步骤。
然后我等待实例" inService"并通过浏览到DNS来测试LB并打开它。还http://mydomain.com已经打开但是当我尝试https://mydomain.com时,我收到一条消息,说明浏览器无法访问服务器。
经过一番搜索后,我添加了以下2条记录。
我再次尝试但得到了与上面相同的结果。 最后,我得到了一个答案,我应该在我的实例服务器中启用https。
当我这样做并浏览时,我得到了一个" 安全连接失败"错误代码" SSL_ERROR_RX_RECORD_TOO_LONG "。
看起来LB没有终止对我的域的https请求 知道我做错了什么!
更新:我删除了我创建的A记录但是当我进行DNS查找时,我发现了一条指向弹性IP的A记录。虽然我有一个CNAME记录,但DNS查询显示我没有CNAME记录。
答案 0 :(得分:1)
好吧,这是一个愚蠢的错误。在我之前工作的人在godaddy中注册了域名,并使用godaddy上的A记录指向了该实例。所以我在route53中添加的记录毫无意义。所以我在godaddy中制作了一个 CNAME记录,它解析为ELB DNS,现在一切正常。
对于那些可能遇到类似问题的人,我会尝试写一些建议
首先,当您选择添加负载均衡器时,客户端不应直接访问您的实例。你应该将用户重定向到ELB,ELB将完成其余的工作。
如果您从其他地方而不是AWS获取DNS,请按照此答案中的第一段进行操作。否则,如果您在AWS中拥有适用于您的域的托管区域,则在 Route53 中添加A记录。
在此步骤之后,如果https仍然无法正常工作。您可以检查对您域名的请求是否到达ELB。您可以使用负载均衡器日志访问或 cloudwatch 来执行此操作。他们都给你到达你的负载均衡器的请求。 cloudwatch使用起来更简单,但是日志访问为您提供了更多请求的详细信息
如果请求未达到,那么您添加的记录尚未传播,或者您没有将它们添加到正确的位置(就像我一样)。
如果请求确实到达ELB但仍然存在问题,那么您可能错过了设置中的某些内容。确保你做出问题中提到的5个步骤。在这种情况下,此video会非常有用
最后,值得一提的是,如果您使用来自ACM的证书,您不必对您的实例上运行的服务器进行任何更改以使https正常工作,因为在这种情况下ELB站在前面您的实例,它确实适合您。当然你可以在你的ELB和。之间制作ssl
虽然这是另一个故事。
答案 1 :(得分:0)
只有在/ var / www / html /中创建内容时才会出现InService。所以我建议你在那里创建一个index.html文件,等待1分钟看看InService。在那之后,你必须指出CNAME为elb“地址”,它必须在路由器53中以小写形式显示。但通常,它不会变得可见所以只需等待并保持刷新,直到elb地址出现在路由器53中。我希望它会工作
答案 2 :(得分:0)
我想在这里添加我的案子。 该错误已在ECS集群,Docker容器中返回 通过ECS群集和负载均衡器暴露给外部世界。
我遇到的错误与本主题中提到的完全相同,
SSL_ERROR_RX_RECORD_TOO_LONG
但是我的DNS记录使用了CNAME条目(上面的注释中提到了A), 所以这部分是正确的。
您可以将此错误的故障排除分为两个阶段: 1) -运行docker容器,请勿使用http,请求docker容器的URL, 该命令应在运行docker container的容器实例上执行:
curl本地主机 要么 curl本地主机:
在我来说,这个阶段过去了,curl返回了html响应
2)检查您的应用程序负载平衡器是否可以处理https流量 您可以通过执行以下命令来做到这一点:
> openssl s_client -connect <您的连接到负载均衡器的dns主机名>:443
就我而言,事实证明应用程序负载平衡器无法正常运行 处理ssl并处理证书链
请找到负载均衡器的命令输出示例 无法处理以下HTTP流量:
CONNECTED(00000003)
140181833668512:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 289 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1594020928
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
为解决第二个问题,我重新创建了一个应用程序负载平衡器, 再次配置https侦听器,从列表中指向证书 帐户中可用证书的数量,问题已解决。