docker - 看板 Docker SSL
问题描述
我想部署kanboard docker镜像。到目前为止,在 80 端口上一切都运行良好。现在我想让它只能通过 https 访问。我有自定义证书。有四个文件:*.cer、*.csr、*.pfx、*.key 如何配置 docker 容器 (nginx) 以使用我自己的 SSL 证书访问?
docker run -d --restart always \
-v kanboard_data:/var/www/app/data \
-v kanboard_plugins:/var/www/app/plugins \
-v kanboard_ssl:/etc/nginx/ssl \
--name kanboard -p 443:443 -t kanboard/kanboard:latest
谢谢
解决方案
只需将您的证书和私钥复制到 docker 映像的 /etc/nginx/ssl/ 目录即可。您可以在 Dockerfile 中执行此操作。这是我的(这是我的整个 Dockerfile - 我只需要 3 行)
FROM kanboard/kanboard
COPY <path/to/whatever.cer> /etc/nginx/ssl/kanboard.crt
COPY <path/to/whatever.key> /etc/nginx/ssl/kanboard.key
确保您更改参数以反映您的证书和私钥在您的开发机器上的位置。
Kanboard 的官方 docker 镜像带有Nginx 服务器。如果您查看 docker 映像中 /etc/nginx/nginx.conf 中的 Nginx 配置文件,您会看到它已经包含以下几行:
ssl_certificate /etc/nginx/ssl/kanboard.crt;
ssl_certificate_key /etc/nginx/ssl/kanboard.key;
这是我为 Dockerfile 中的每个 COPY 指令获得第二个参数的地方。我根本不需要修改 nginx.conf。
一旦我将上述 COPY 指令添加到我的 Dockerfile 中,我所要做的就是重新构建映像然后运行它,现在我可以通过 https 访问我的服务器了。
推荐阅读
- amazon-web-services - RDS 代理目标组不可用
- docker - 如何基于 maven:3.6.3-openjdk-14 镜像在 docker 容器中安装 aws-cli?
- c# - asp .net core 3.1 JWT和SignalR认证登录部分
- python - 可视化解析树 - 在 python 中嵌套列表到树
- python - 如何在 django 中覆盖现有的权限模型 __str__ 方法()?
- mysql - Regular expression to replace same patterns with another string
- firebase - Flutter/Firebase 类型“String”不是“List”类型的子类型
' - java - 选择时警报对话框不更改
- python - 如何让爬虫从 csv 列表中获取起始 URL 和允许的域?
- r - 密度时间线图