如何让我的证书适用于 LocalStack 中的 SSL

Kra*_*kul 5 docker localstack

更新:我在原来的帖子中意识到所引用的证书是针对数据库的,而不是本地堆栈端口。我已经更新了描述和问题,因为我仍然无法获得浏览器识别的证书。

我似乎无法让我的证书与 localstack 一起使用。我尝试按照localstack中的“使用自定义 SSL 证书”说明使用它们,包括将文件添加到我的卷中列出的临时目录中,但它们没有使用。我还尝试将以下内容添加到 yml 的卷部分:

- ./support/docker/localstack/aws.local.domain.com.pem:/certs/localhost.pem/
- ./support/docker/localstack/aws.local.domain.com.crt:/certs/localhost.-cert.pem 
- ./support/docker/localstack/aws.local.domain.com.key:c2c/certs/localhost-key.pem
Run Code Online (Sandbox Code Playgroud)

不确定我的下一步,任何帮助将不胜感激。

Docker version = 20.10.2
我不确定如何获取 localstack 版本,但截至 3 月 17 日我确实对其进行了 docker pull 。

docker-compose.yml

version: '3.7'
services:
  ecms_database:
    image: 339983081851.dkr.ecr.us-east-1.amazonaws.com/ecms_mysql:1.0.3
    container_name: ecms_database
    ports:
      - '33061:3306'
  memcached:
    image: 'memcached'
    container_name: memcached
    ports:
      - '11211:11211'
  localstack:
    image: localstack/localstack
    container_name: localstack
    ports:
      - "4566:4566"
      - "4571:4571"
    environment:
      - SERVICES=s3,sqs
      - DATA_DIR=/tmp/localstack/data
    volumes:
      - "/private${TMPDIR:-/tmp/localstack}:/tmp/localstack"
Run Code Online (Sandbox Code Playgroud)

Art*_*tru 5

默认情况下,Localstack 期望在其 docker 容器内有一个自定义证书文件/tmp/localstack/server.test.pem

该文件应包含私钥和证书信息,例如:

-----BEGIN PRIVATE KEY-----
   ......your key info.....
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
   .....your cert info......
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

根据genrate_ssl_cert方法,Localstack尝试加载server.test.pem文件,然后解析它并将数据分成两个本地文件:server.test.key和server.test.cert。如果没有.pem文件或者无效,那么localstack将为您生成一个新的证书。

因此,我们可以将本地文件夹中准备好的证书绑定到 Localstack docker 容器:

version: "3.8"

services:
  localstack:
    image: localstack/localstack
    # S3 port is 4566
    ports:
      - "4566:4566"
    volumes:
      - ./your-local-path/ssl_cert_localstack:/tmp/localstack/server.test.pem:ro
Run Code Online (Sandbox Code Playgroud)

请注意,浏览器对于每个原始 URL 至少会抱怨一次自签名证书。

  • 似乎新版本的 Localstack 现在希望该文件位于不同的位置:/var/lib/localstack/cache/server.test.pem (4认同)