Docker AWS证书pipe理器SSL NodsJS失败

我已经使用Docker提供的Cloudformation模板创build并部署了Docker群集NodeJS应用程序。

我的NodeJS应用程序将端口80和443映射到端口3000。

我可以确认,弹性负载均衡器有端口80和443的收听者。

为什么我可以在http上成功访问我的应用程序,而不是在https上?

例如: http: //app.myapp.com/api/health成功响应,但不是https://app.myapp.com/api/health

通过networking和官方docker文件和论坛进一步挖掘。

我发现以下是真正有用的https://docs.docker.com/docker-for-aws/load-balancer/#more-full-examples

诀窍是给服务添加一个标签,并暴露端口443。

请注意,如果您使用stack deploylabel should be on the deploy level not on the service level

这是一个用于堆栈部署的示例Docker组合文件

 version: '3.3' services: node: image: "8574365892346589.dkr.ecr.eu-central-1.amazonaws.com/app:1.5.1" working_dir: /home/node/app environment: - APP_PORT=3000 - NODE_ENV=production volumes: - localstorage:/home/node/app ports: - "80:3000" - "443:3000" deploy: mode: global labels: - "com.docker.aws.lb.arn=arn:aws:acm:eu-central-1:873456923456:certificate/blahblahblahblahblahblah" update_config: parallelism: 2 delay: 5s restart_policy: condition: any delay: 5s max_attempts: 5 window: 120s volumes: localstorage: 

注意标签是如何部署的

希望有所帮助