docker 使用 mkcert
时间: 2024-10-10 17:01:15 浏览: 48
Docker 可以配合 `mkcert` 这个工具来创建自签名的 SSL/TLS 证书,这对于在本地环境中测试 Docker 容器、微服务以及内部网络通信非常有用,因为它们通常不需要外部公共 CA 颁发的证书。
`mkcert` 是一款简单易用的命令行工具,它会在你的电脑上生成一对证书颁发者匿名 (CA) 的根证书和私钥,可以用于在一个域名或一组域名上启用 HTTPS。在使用 Docker 时,你可以按照以下步骤操作:
1. **安装 mkcert**:
- 对于 macOS 或 Linux,你可以使用 Homebrew 或者通过包管理器安装,例如在 Ubuntu 上运行 `sudo apt-get install -y software-properties-common && sudo add-apt-repository ppa:certbot/certbot && sudo apt-get update && sudo apt-get install mkcert`。
- 如果你在 Windows 上,可以从 GitHub 下载源码并手动编译安装。
2. **生成证书**:
- 打开终端,进入项目文件夹,然后运行 `mkcert domain1 domain2` 来为指定的域名生成证书。这里 `domain1` 和 `domain2` 是你想为其提供SSL的域名。
3. **将证书添加到 Docker 映射目录**:
- 将生成的 `.pem` 文件(如 `localhost.pem` 和 `localhost-key.pem`)复制到你的项目的 root 目录下,或者设置环境变量 `$JAVA_HOME/lib/security/cacerts` 来让 Docker 使用这些证书。
4. **配置 Dockerfile**:
- 在 Dockerfile 中,添加一个命令以复制这些证书到容器内的 `/etc/docker/certs.d/` 目录下,或者直接在镜像构建阶段链接证书。
5. **启动 Docker 映射端口**:
- 在启动容器时,使用 `-e` 或 `--env-file` 参数传递证书路径,比如 `-e HTTPSSSLCERT=/path/to/domain.pem - 启动 Docker 容器后,你可以访问 HTTPS 端点验证证书是否有效。
阅读全文