为单实例Elastic Beanstalk配置HTTPS的相关疑问
单实例Elastic Beanstalk配置HTTPS的解决方案
首先明确:Squarespace颁发的SSL证书无法用于你的Elastic Beanstalk实例——这类证书是Squarespace托管服务专用的,他们不会提供私钥,而配置服务器HTTPS必须同时拥有证书和对应私钥。
你有两个可行的解决方案:
方案一:使用AWS Certificate Manager(ACM)免费证书
- 登录AWS控制台,进入ACM服务,点击“请求证书”,输入你的域名(支持泛域名)。
- 选择验证方式:
- 如果域名DNS托管在AWS Route53,直接选择“DNS验证”,ACM会自动添加验证所需的CNAME记录,等待验证完成即可。
- 如果域名在Squarespace托管,复制ACM生成的CNAME记录,手动添加到Squarespace的DNS设置中,等待CA验证(通常几分钟到几小时)。
- 验证通过后,在Elastic Beanstalk控制台进入你的环境,修改配置:
- 单实例环境需通过
.ebextensions配置文件关联ACM证书,或者直接在环境的“软件”配置中启用HTTPS,选择已申请的ACM证书(部分区域支持直接关联)。
- 单实例环境需通过
方案二:自行生成证书并由可信CA签发
- 用
openssl生成私钥:openssl genrsa -out domain-private.key 2048 - 生成证书签名请求(CSR):
填写信息时,确保“Common Name”字段与你的域名完全一致。openssl req -new -key domain-private.key -out domain-csr.pem - 将CSR提交给可信CA(比如Let's Encrypt是免费选项,或付费CA)获取签发的证书文件。
- 将私钥和证书文件上传到Elastic Beanstalk实例(可通过
.ebextensions配置自动部署),修改nginx\conf.d\https.conf中的路径,指向这两个文件。
注意
- 不要尝试从Squarespace索要私钥,他们的服务模式决定了不会提供这类敏感信息。
- 单实例环境没有负载均衡,所有HTTPS流量直接到EC2实例,因此必须确保实例的443端口对外开放(在安全组中配置)。
内容的提问来源于stack exchange,提问作者sow_gali
相关产品推荐
相关产品推荐

