gpt4 book ai didi

python - Elastic Beanstalk Flask 应用程序上的 HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:02 24 4
gpt4 key购买 nike

我一直在尝试在我的 AWS Elastic Beanstalk(eb) 应用程序上启用 SSL,但到目前为止运气不佳。

关注documentation for configuring https access on eb之后,我创建了一个自签名证书,我认为如果只需要加密就足够了。

我创建了一个使用负载均衡器的 eb 环境,在上传证书后,我能够使用它并选择安全监听端口 (8443)。

在 EC2 负载均衡器上,我为

创建了一个监听器
HTTPS   8443    HTTP    80  <cert file>

然后我给负载均衡器和 eb 实例一个具有规则的安全组:

Custom TCP Rule     TCP     8443     0.0.0.0/0

我还在 .ebextensions 中包含了一个配置,就像文档告诉我的那样:

Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupName: {Ref : <security_group_name>}
IpProtocol: tcp
ToPort: 8443
FromPort: 8443
CidrIp: 0.0.0.0/8443

然后在我的 Flask 应用程序中,应用程序具有以下参数:

from OpenSSL import SSL
from flask_sslify import SSLify

context = SSL.Context(SSL.TLSv1_2_METHOD)
context.use_privatekey_file('/home/ec2-user/privatekey.pem')
context.use_certificate_file('/home/ec2-user/server.crt')

basic_auth = BasicAuth(application)
sslify = SSLify(application)


if __name__ == '__main__':
application.run(host='0.0.0.0', port=8443, ssl_context=context)

现在,当我转到以 https://为前缀的实例的公共(public) IP 时,我得到了这个:

Google Chrome Connection info (无法发布当前代表的图片啊)

这让我觉得我已经进行了加密,但 Flask 服务器连接日志仍然显示清晰的请求(预计会看到困惑的加密请求信息)。

当我连接到 *.elasticbeanstalk.com 地址时,我什么也得不到。

所以我想我有两个问题:

1) 这是否意味着我有加密?

2) 为什么我无法使用我的 elasticbeanstalk url 访问实例?

最佳答案

您的 ELB 配置是在端口 8443 上监听 HTTPS 请求并向 EC2 HTTP 端口发出代理请求。因此,您的 EC2 必须监听 HTTP 端口。但是,这意味着您终止了对 ELB 的 SSL 请求。

如果您希望 EC2 在端口 8443 上监听 HTTPS 请求,您的 ELB 配置应该是:

HTTPS   8443    HTTPS   8443  <cert_file>

关于python - Elastic Beanstalk Flask 应用程序上的 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com