Nginx
Haproxy:帶有自簽名證書的 SSL 加密後端
我正在努力配置 HAProxy,使其終止 SSL,因此只有一個地方可以配置購買的 SSL 證書。但是,我更希望與後端伺服器的連接也使用 SSL 加密。
我發現的一個建議是在後端伺服器上創建自簽名證書,然後在每個伺服器行上設置“驗證無”。…所以從瀏覽器到 HAProxy 的連接將使用官方購買的 SSL 證書,但到 HAProxy 到後端伺服器的連接將使用自簽名證書。自簽名證書的好處是它們是免費的,它們不需要更新和維護(我可以將到期時間設置在很遠的將來,避免每年都安裝新證書)。然而,可以理解的是,這為 MITM 攻擊打開了後端,並且我讀過的一些資料不推薦這樣做。
我可以配置 HAProxy 以便我可以在後端伺服器上使用自簽名證書,但也許以某種方式將 HAProxy 伺服器上的自簽名證書列入白名單?…因此 HAProxy 到後端的連接將被加密,它不會受到 MITM 攻擊,並且 HAProxy 會知道信任來自後端伺服器的自簽名證書。
我描述的可能嗎?我是 HAProxy SSL 終止的新手,因此不勝感激。
我的配置的相關部分如下:
frontend www-in bind *:80 bind *:443 ssl crt /etc/ssl-keys/my-public-ssl-key.pem no-sslv3 mode http default_backend https-backend # force redirect to https redirect scheme https if !{ ssl_fc } backend https-backend balance leastconn server web1 1.1.1.1:443 check ssl verify none server web2 2.2.2.2:443 check ssl verify none http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc }
這個問題與 . 並沒有真正的聯繫
HAProxy
,而是與管理證書和證書頒發機構有關。不確定您使用的是哪個作業系統,因為您沒有說明這一點,但如果它是某種 Linux 風格(儘管以下適用於
Debian
及其衍生產品):
- 確保您已安裝該軟體包
ca-certificates
。- 您正在使用自己的證書頒發機構(ca) 創建證書。
- 把
your ca root cert
這個 ca 放在裡面/usr/local/share/ca-certificates/name-of-your-ca/
。(您可能必須自己創建文件夾name-of-your-ca
。)確保your ca root cert
具有.crt
副檔名。(預設情況下,
/usr/local/share/ca-certificates/
由 擁有root:staff
,因此使用sudo
orroot
來執行此操作。)
- 執行
update-ca-certificates
(通過sudo
/ asroot
)。- 執行後,應該有一個文件
/etc/ssl/cert/your-ca-root.pem
符號連結到/usr/local/share/ca-certificates/name-of-your-ca/your-ca-root.crt
.- 啟用驗證
HAProxy
並獲利。