Pen*_*esh 5 encryption ssl nginx docker lets-encrypt
我知道如何为 nginx 配置让我们加密。我很难配置让我们在 docker 映像中使用 nginx 加密。Let's encrypt 证书在etc/letsencrypt/live
文件夹中是符号链接的,我无权查看里面的真实证书文件/etc/letsencrypt/archive
有人可以建议出路吗?
我补充一下我的错误。也许有人会发现它很有用。
我挂载了letsencrypt 的/live 目录而不是整个letsencrypt 目录树。
问题在于:
/live 文件夹仅包含指向 /archive 文件夹的符号链接,该文件夹未使用我的方法安装到 docker 容器。(事实上,我什至安装了一个符号链接到 live 文件夹的 /certs 文件夹,因为我在开发环境中有那个 certs 文件夹,同样的问题......真正的(符号链接的)文件没有安装)
当我挂载 /etc/letsencrypt 而不是 /live 时,所有问题都消失了
我的 docker-compose.yml 的一部分
services:
ngx:
image: nginx
container_name: ngx
ports:
- 80:80
- 443:443
links:
- php-fpm
volumes:
- ../../com/website:/var/www/html/website
- ./nginx.conf:/etc/nginx/nginx.conf
- ./nginx_conf.d/:/etc/nginx/conf.d/
- ./nginx_logs/:/var/log/nginx/
- ../whereever/you/haveit/etc/letsencrypt/:/etc/letsencrypt
Run Code Online (Sandbox Code Playgroud)
该配置中的最后一行是重要的。改成从
- ./certs/:/etc/nginx/certs/
Run Code Online (Sandbox Code Playgroud)
在我的情况下,/certs 是 /etc/letsencrypt/live 的符号链接。这不能像我上面描述的那样工作。
如果有人遇到这个问题,我已经通过将文件夹安装到 docker 容器中来解决它。
etc/letsencrypt
和etc/ssl
文件夹安装到 docker 中-v
用于挂载卷的标志。不要忘记打开port 443
容器。根据您的安装方式,可以在 docker 容器中启用 https,而无需更改 nginx 路径。
docker run -d -p 80:80 -p 443:443 -v /etc/letsencrypt/:/etc/letsencrypt/ -v /etc /ssl/:/etc/ssl/ <image name>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3768 次 |
最近记录: |