Amazon web services 如何在AWS Docker上启用HTTPS 你好,

Amazon web services 如何在AWS Docker上启用HTTPS 你好,,amazon-web-services,nginx,https,Amazon Web Services,Nginx,Https,我一直在努力在AWS上运行带有HTTPS的单实例Docker HTTP访问正常,但我无法访问HTTPS(谷歌浏览器显示“无法访问此网站”) 这里我们有一个使用Elastic Beanstalk的实例。因此没有负载平衡器,证书托管在实例上 我遵循了本教程: 实例工作正常,我的证书上传正常,nginx配置也正常。 到目前为止,我得到的是: 试图将安全组设置为允许TCP 443,但无效 试图将安全组设置为允许所有通信到任何位置,但未成功 从我的域名进行HTTP访问正在工作,这让我相信这不是DNS问题

我一直在努力在AWS上运行带有HTTPS的单实例Docker

HTTP访问正常,但我无法访问HTTPS(谷歌浏览器显示“无法访问此网站”)

这里我们有一个使用Elastic Beanstalk的实例。因此没有负载平衡器,证书托管在实例上

我遵循了本教程:

实例工作正常,我的证书上传正常,nginx配置也正常。 到目前为止,我得到的是:

  • 试图将安全组设置为允许TCP 443,但无效
  • 试图将安全组设置为允许所有通信到任何位置,但未成功
  • 从我的域名进行HTTP访问正在工作,这让我相信这不是DNS问题
  • HTTPS访问使用实例中的curl,因此nginx配置在我看来很好(日志访问正常)
  • 当我用HTTPS点击我的域名时,
    /var/log/nginx/access.log
    不会显示任何结果


这是我的安全组值

Port range    Protocol    Source                    Security groups
80            TCP         sg-03d37000000000000      MY_SECURITY_GROUP
All           All         0.0.0.0/0                 MY_SECURITY_GROUP
All           All         ::/0                      MY_SECURITY_GROUP
443           TCP         0.0.0.0/0                 MY_SECURITY_GROUP
[ec2-user@ip-123-345-67-89 nginx]$ tail -f /var/log/nginx/access.log
AWS_IP    - - [01/Oct/2020:14:02:48 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
MY_IP     - - [01/Oct/2020:14:02:50 +0000] "GET / HTTP/1.1" 304 0  "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ..." "123.345.67.89"
AWS_IP    - - [01/Oct/2020:14:02:57 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
AWS_IP    - - [01/Oct/2020:14:03:03 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
127.0.0.1 - - [01/Oct/2020:14:03:10 +0000] "GET / HTTP/1.1" 200 27 "-" "curl/7.61.1"                                         "-"
AWS_IP    - - [01/Oct/2020:14:03:12 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"


当我在HTTPS中点击实例nginx时

(不安全是因为证书域名不是127.0.0.1,API结果是正确的)



这是我在尝试访问该网站时从Google Chrome获得的信息



这是nginx访问的日志

Port range    Protocol    Source                    Security groups
80            TCP         sg-03d37000000000000      MY_SECURITY_GROUP
All           All         0.0.0.0/0                 MY_SECURITY_GROUP
All           All         ::/0                      MY_SECURITY_GROUP
443           TCP         0.0.0.0/0                 MY_SECURITY_GROUP
[ec2-user@ip-123-345-67-89 nginx]$ tail -f /var/log/nginx/access.log
AWS_IP    - - [01/Oct/2020:14:02:48 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
MY_IP     - - [01/Oct/2020:14:02:50 +0000] "GET / HTTP/1.1" 304 0  "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ..." "123.345.67.89"
AWS_IP    - - [01/Oct/2020:14:02:57 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
AWS_IP    - - [01/Oct/2020:14:03:03 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"
127.0.0.1 - - [01/Oct/2020:14:03:10 +0000] "GET / HTTP/1.1" 200 27 "-" "curl/7.61.1"                                         "-"
AWS_IP    - - [01/Oct/2020:14:03:12 +0000] "GET / HTTP/1.1" 200 56 "-" "ELB-HealthChecker/2.0"                               "-"


到目前为止,我相信我的AWS配置和实例之间有问题,因为所有的东西都在实例上工作

但是AWS配置对我来说很好,所以我对问题的起源没有其他想法

任何帮助都将不胜感激。 非常感谢您阅读本文。

基于评论

问题是由于错误地使用了负载平衡的EB环境,而不是单实例环境


解决方案是在EB控制台中将负载平衡的EB环境更改为单实例环境。

您能否澄清您的设置?我看到您有
ELB HealthChecker
所以您使用的是应用程序负载平衡器?“安全组值”是针对ALB还是您的实例?如果您有ALB,您在ALB或实例上的哪里部署了SSL证书?您好@Marcin,对不起,我认为
单个实例
足够清楚(我不是AWS专家)。我使用弹性Beanstalk的单个实例。因此没有负载平衡器,证书托管在实例上。基本上我遵循了本教程:您的日志显示“ELB HealthChecker/2.0”中的条目。如果没有负载平衡器,它从何而来?就是这样!谢谢你,伙计。在我的Elastic Beanstalk环境中,在
配置>容量
下,
环境类型
被设置为负载平衡。我把它改成了单实例,现在可以工作了。我的错误是猜测弹性Beanstalk配置从PHP(我以前的配置)到Docker都是一样的。您可以将此作为答案发布,以便我可以解决此问题。没问题,谢谢。我们如何在AWS中启用HTTPS容器ECS@sks123245你可以就此提出一个新问题。但通常情况下,您需要在目标组设置中具有自签名ssl证书和HTTPS协议。