Docker AWS证书管理器SSL NodsJS失败

问题描述 投票:0回答:1

我使用Docker提供的Cloudformation模板创建并部署了一个docker swarm集群NodeJS应用程序。

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

我可以确认弹性负载平衡器有端口80和443的监听器。

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

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

node.js ssl docker amazon-cloudformation docker-swarm
1个回答
0
投票

通过网络和官方码头文件和论坛挖掘更多。

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

诀窍是向服务添加标签并公开端口443。

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

这是一个与stack deploy一起使用的docker compose文件示例

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:

注意标签在部署下的情况

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.