我知道如何configure let's encrypt for nginx。我很难配置让我们用docker镜像中的nginx进行加密。让加密证书在etc/letsencrypt/live
文件夹中进行符号链接,我无权查看/etc/letsencrypt/archive
中的真实证书文件
有人可以建议出路吗?
如果有人遇到这个问题,我已经通过将文件夹安装到docker容器中解决了这个问题。
etc/letsencrypt
和etc/ssl
文件夹安装到docker中-v
flag来安装卷。别忘了为容器打开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>
我加错了。也许有人会发现它很有用。
我挂载了letsencrypt的/ live目录,而不是整个letsencrypt目录树。
这个问题: / live文件夹只是将符号链接保存到未使用我的方法挂载到docker容器的/ archive文件夹。 (事实上我甚至挂了一个符号链接到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
该配置中的最后一行是重要的一行。改变它
- ./certs/:/etc/nginx/certs/
和/ certs是/ etc / letsencrypt / live的符号链接。这不能像我上面描述的那样工作。
如果您使用的是nginx,Docker和Letsencrypt,您可能会喜欢以下Github项目:https-portal。
它可以自动执行大量手动操作,并使用docker-compose
轻松管理配置。来自README:
对于某些背景..该项目还讨论了黑客新闻:HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
(免责声明:我与该项目没有任何关系,只是一个用户)