更新:我在原来的帖子中意识到所引用的证书是针对数据库的,而不是本地堆栈端口。我已经更新了描述和问题,因为我仍然无法获得浏览器识别的证书。
我似乎无法让我的证书与 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)
默认情况下,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 至少会抱怨一次自签名证书。
| 归档时间: |
|
| 查看次数: |
7123 次 |
| 最近记录: |