如何在docker镜像中配置我们的nginx加密证书?

时间:2016-06-15 18:05:28

标签: ssl encryption nginx docker lets-encrypt

我知道如何configure let's encrypt for nginx。我很难配置让我们在docker镜像中使用nginx进行加密。我们的加密证书已在etc/letsencrypt/live文件夹中进行符号链接,我无权查看/etc/letsencrypt/archive

中的真实证书文件

有人可以建议出路吗?

2 个答案:

答案 0 :(得分:3)

如果有人遇到此问题,我已将文件夹安装到docker容器中解决了问题。

  • 我已将etc/letsencryptetc/ssl个文件夹装入docker
  • 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>

答案 1 :(得分:0)

我加我的错误。也许有人会发现它有用。

我安装了letencrypt的/ live目录,而不是整个letencrypt目录树。

此问题:
/ live文件夹仅保存到/ archive文件夹的符号链接,该链接未通过我的方法安装到docker容器。 (实际上,我什至安装了一个/ 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的符号链接。如上所述,这是行不通的。