【发布时间】:2023-03-09 00:33:01
【问题描述】:
到目前为止,我一直在尝试在我的 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
然后在我的烧瓶应用程序中,应用程序具有以下参数:
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:// 为前缀的实例的公共 IP 时,我得到了这个:
Google Chrome Connection info(不能发布当前代表的图片哦)
这让我觉得我已经加密了,但 Flask 服务器连接日志仍然显示清晰的请求(预计会看到混乱的加密请求信息)。
当我连接到 *.elasticbeanstalk.com 地址时,我什么也得不到。
所以我想我有两个问题:
1) 这是否意味着我已加密?
2) 为什么我无法使用我的 elasticbeanstalk url 访问实例?
【问题讨论】:
标签: python ssl encryption flask amazon-elastic-beanstalk