Nginx
代理背後的 GitLab 的 HTTPS 支持
我有一個公共靜態 IP 地址和幾個在他們自己的虛擬機上執行在埠 80 和 443 上的應用程序。
其中之一是 GitLab。
因為我不能將埠 80/443 轉發到其中一個,所以我有:
- 接收所有 80/443 請求的 Ubuntu 機器。
nginx
安裝在其上並根據主機頭配置為代理伺服器,例如scm.mydomain.com
配置為proxy_pass 192.168.50.200
GitLab 機器。到目前為止,一切都按預期工作。
我的挑戰是如何啟用
https
對 GitLab 的支持。我知道當我編輯external_url
到https://....
GitLab 時會處理剩下的事情,但這就是問題開始的地方,因為現在我必須在我的代理伺服器中轉發埠 443 而不是 80,並且沒有有效的證書是不可能的,並且有效的證書scm.mydomain.com
是已經安裝在 GitLab 機器上。有解決辦法嗎?
這是我
nginx
正在執行的埠 80 的配置:server { listen 80; server_name scm.mydomain.com; location / { include proxy_params; proxy_pass http://192.168.50.200; } }
並且沒有有效的證書是不可能的
是的。只需將proxy_ssl_verify設置為 false。
server { listen 80; server_name scm.mydomain.com; location / { include proxy_params; proxy_pass http://192.168.50.200; } } server { listen 443 ssl http2; server_name scm.mydomain.com;; ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/www.example.com/privkey.pem; include snippets/ssldefaults.conf; location / { include snippets/proxydefaults.conf; proxy_ssl_verify off; proxy_pass https://192.168.50.200/ ; } }