在AWS GovCloud的ECS容器中部署HTTPS React应用遇阻求助
解决方案:AWS GovCloud下无自定义域名实现React应用HTTPS访问
方案1:使用ACM私有证书 + ALB HTTPS监听
- 在AWS GovCloud的ACM中创建私有证书,可直接颁发给ALB的默认DNS域名(如
xxx.us-gov-west-1.elb.amazonaws.com) - 将该私有证书关联至ALB的443端口HTTPS监听
- 由于私有证书不被公共根CA信任,需将证书导入访问应用的客户端设备/浏览器信任列表,可通过导出ACM证书的PEM文件分发给用户手动导入,或借助企业内部MDM/组策略批量部署信任规则
方案2:上传自签名证书到IAM并配置ALB
- 用
openssl生成自签名证书:
替换命令中的域名为你的ALB默认DNSopenssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=xxx.us-gov-west-1.elb.amazonaws.com" - 将生成的证书和私钥上传至AWS IAM证书存储:
aws iam upload-server-certificate --server-certificate-name my-react-cert --certificate-body file://cert.pem --private-key file://key.pem - 在ALB上创建HTTPS监听,选择上传至IAM的证书
- 同样需要客户端信任该自签名证书,才能避免浏览器安全警告并正常访问
修复API Gateway方案的空白页面问题(可选)
若坚持使用API Gateway,空白页面源于React静态资源路径与路由未适配API Gateway规则:
- 构建React应用时设置
PUBLIC_URL为API Gateway的基础路径,例如PUBLIC_URL=https://api-id.execute-api.us-gov-west-1.amazonaws.com/prod - 将React路由替换为
HashRouter而非BrowserRouter,规避API Gateway路径匹配冲突 - 在API Gateway中配置集成响应,确保JS、CSS、图片等静态资源的Content-Type正确映射(如
application/javascript、text/css等)
内容的提问来源于stack exchange,提问作者Pmarceaujr
相关产品推荐
相关产品推荐

