簡體   English   中英

如何配置讓我們在docker鏡像中為nginx加密證書?

[英]How to configure Let's encrypt certificates for nginx inside a docker image?

我知道如何為nginx配置let的加密 我很難配置讓我們用docker鏡像中的nginx進行加密。 讓加密證書在etc/letsencrypt/live文件夾中進行etc/letsencrypt/live ,我無權查看/etc/letsencrypt/archive的真實證書文件

有人可以建議出路嗎?

如果有人遇到這個問題,我已經通過將文件夾安裝到docker容器中解決了這個問題。

  • 我已將etc/letsencryptetc/ssl文件夾安裝到etc/letsencrypt
  • 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>

我加錯了。 也許有人會發現它很有用。

我掛載了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:

特征

  • 在本地測試
  • 重定向
  • 自動容器發現
  • 使用非Dockerized應用程序進行混合設置
  • 多個域
  • 服務靜態網站
  • 與其他應用共享證書
  • HTTP Basic Auth

這個怎么運作

  • 從Let's Encrypt獲取每個子域的SSL證書。
  • 配置Nginx使用HTTPS(並通過將HTTP重定向到HTTPS強制HTTPS)
  • 設置一個每周檢查一次證書的cron作業,並更新它們。 如果他們在30天后到期。

對於某些背景..該項目還討論了黑客新聞: HTTPS-Portal:由Nginx,Let's Encrypt和Docker提供支持的自動HTTPS服務器

(免責聲明:我與該項目沒有任何關系,只是一個用戶)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM