在 aws 弹性负载均衡器上无法让 https 使用自签名证书

Posted

技术标签:

【中文标题】在 aws 弹性负载均衡器上无法让 https 使用自签名证书【英文标题】:Trouble getting https to work with self signed certificate on aws elastic load balancer 【发布时间】:2013-09-16 05:44:22 【问题描述】:

我在使用自签名证书在我的 aws 弹性负载均衡器上配置 https 时遇到问题。完成设置后,无法连接到 https 端点。 http连接还是可以的。

这就是我所做的。

    使用此命令生成自签名证书

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

    使用以下命令验证密钥和证书是否正常工作:

    openssl rsa -in privateKey.key -checkopenssl x509 -in certificate.crt -text -noout

    将证书密钥和证书转换为 .pem 编码格式以符合 aws 证书要求。

    openssl rsa -in privateKey.key -text > private.pem

    openssl x509 -inform PEM -in certificate.crt > public.pem

    使用 AWS 管理控制台将证书上传到我的弹性负载均衡器 http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_UpdatingLoadBalancerSSL.html。对于私钥和公共证书值,我使用了步骤 3 中生成的 private.pem 和 public.pem。

    进入 EBL 监听器配置,添加一个 https 监听器并使用我刚刚上传的证书。下面是监听器的配置:

有没有想过我的配置可能有什么问题?谢谢!!!

【问题讨论】:

向 https 发出请求会得到什么?超时? 是的,请求超时。 听起来像是防火墙问题...您还有其他信息给我吗? 使用 https,curl 命令卡在“connect()”步骤,然后超时。这里有一些有趣的东西。如果我使用 AWS UI 工具上传自签名证书,我可以上传证书。但是,当使用 AWS CLI upload-server-certificate 命令时,我收到此错误“发生客户端错误 (MalformedCertificate):无效的公钥证书。”这告诉我证书/私钥可能有问题。您是否为您的 aws 平衡器生成了自签名证书?您使用了哪些步骤来生成它?谢谢! 【参考方案1】:

负载均衡器的安全组是否包含源 0.0.0.0/0 的入站 HTTPS 443 端口?我花了几个小时才终于找到了这个解决方案。

【讨论】:

啊,显而易见的事情再次让我忘记了。谢谢! 在得到大家的支持 2 小时后,就是这样。谢谢! 仅供参考,为 ELB 创建的默认安全组(未指定安全组时)仅允许端口 80 上的传入连接。

以上是关于在 aws 弹性负载均衡器上无法让 https 使用自签名证书的主要内容,如果未能解决你的问题,请参考以下文章

无法让 https 在 Elastic Load Balancer (AWS) 上工作

如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?

无法在 cloudformation 中使用 https 设置我的弹性负载均衡器

如何使用 aws 弹性负载均衡器将 http 请求强制重定向到独立乘客中的 https?

通过 ACM 和负载均衡器为 aws Nodejs 弹性 beanstalk 设置了 HTTPS,我如何在 s3 存储桶中为 Angular 设置 HTTPS

408 HTTP 错误尝试使用负载均衡器访问 AWS 弹性 beanstalk 上的 https