能否为Elastic Beanstalk子域名配置HTTPS?
为Elastic Beanstalk子域名配置HTTPS的完整指南
当然可以!AWS已经为Elastic Beanstalk的默认子域名(格式为your-app.elasticbeanstalk.com)提供了官方SSL证书支持,不需要你额外申请第三方证书,只需要调整环境配置就能启用HTTPS访问。下面分场景给你详细说明操作步骤:
一、带负载均衡器的EB环境(最常见的Web服务器环境)
这是大多数EB应用的部署方式,操作起来很直观:
- 登录AWS控制台,进入你的Elastic Beanstalk环境页面
- 切换到配置标签页,找到负载均衡器配置项
- 展开监听部分,点击添加监听:
- 监听端口选择
443,协议选择HTTPS - 证书下拉框选择
AWSElasticBeanstalkDefaultCertificate(这是AWS官方提供的、专门针对*.elasticbeanstalk.com后缀域名的免费证书) - 设置转发目标为实例的
80端口(对应HTTP协议)
- 监听端口选择
- 保存配置,等待EB环境更新完成,之后就能通过
https://your-app.elasticbeanstalk.com访问你的应用了
二、单实例EB环境(无负载均衡器)
如果你的应用是单实例部署,需要稍微调整Web服务器配置:
- 确保你的实例上已经安装了Apache或Nginx这类Web服务器(EB默认会根据平台版本预装)
- 推荐通过
.ebextensions配置文件来启用HTTPS:
在你的应用根目录创建.ebextensions文件夹,里面新建一个01-enable-https.config文件,内容示例(以Apache为例):
或者更简单的方式:在EB控制台的配置→安全标签页,直接启用HTTPS并选择默认证书,EB会自动帮你配置Web服务器files: /etc/httpd/conf.d/ssl.conf: mode: "000644" owner: root group: root content: | Listen 443 <VirtualHost *:443> SSLEngine on SSLCertificateFile "/etc/pki/tls/certs/localhost.crt" SSLCertificateKeyFile "/etc/pki/tls/private/localhost.key" DocumentRoot /var/www/html # 这里可以添加你的应用路由规则 </VirtualHost>
三、强制所有请求跳转到HTTPS
如果你想让用户的HTTP请求自动重定向到HTTPS,可以通过两种方式实现:
- 负载均衡器层面:在负载均衡器的HTTP监听(端口80)中,将动作设置为重定向到HTTPS(端口443),状态码选
301(永久重定向) - Web服务器层面:以Nginx为例,在配置文件中添加重定向规则:
server { listen 80; server_name your-app.elasticbeanstalk.com; return 301 https://$host$request_uri; }
关键注意事项
- AWS提供的
AWSElasticBeanstalkDefaultCertificate仅对*.elasticbeanstalk.com域名有效,如果你使用自定义域名,需要在AWS Certificate Manager(ACM)申请对应证书并绑定 - 确保你的EB环境安全组已经开放了
443端口,允许外部HTTPS流量进入 - 对于较旧版本的EB平台,可能需要先升级平台版本才能支持默认证书的自动绑定
内容的提问来源于stack exchange,提问作者Anatol Zakrividoroga
相关产品推荐
相关产品推荐

