nginx代理轉發443
我在埠 80 上執行了一個反向代理,作為“網關”來更新我網路內虛擬機上的 Let’s Encrypt 證書。由於這個原因,這個反向代理每週只在埠 80 上暴露 5 分鐘。我有許多域通過此伺服器被轉發到它們的內部 IP 地址。這一切都很好,但是有一台伺服器在埠 443 上暴露在網際網路上。當我使用 https 向正確的域名發出請求時,一切都很好。當我使用其他域之一時,我當然會收到無效證書錯誤。這就是為什麼我正在考慮通過反向代理路由埠 443 流量,這樣我就能夠阻止流量不針對暴露並在 443 上執行的一個域。然而,Nginx 需要一個我不能給它的有效證書因為它'
我在埠 443 上執行的伺服器是 Kerio Mailserver。也許我可以在那裡做一些事情來強制只使用一個域名?
有沒有辦法處理這個?以防萬一您想知道:其他伺服器不需要公開。
我將其修復如下:我首先在我的 Kerio VM 上安裝了 nginx,並配置了一個反向代理路由埠 443 到 444(Kerio 現在所在的位置)。接下來,我在 VM 上創建了一個萬用字元 SSL 證書,該證書用於 2 個主機,1 個用於 webmail 和整個 Kerio,1 個用於重定向指向我的公共 IP 的所有其他域名而不會出現證書錯誤。
現在我要弄清楚的是如何真正解決 504 網關超時問題,而不是僅僅添加一個巨大的超時限制。並希望 certbot 確實可以毫無問題地使用 DNS 挑戰進行更新。
現在該睡覺了。
我看不出為什麼不能通過 NGINX 代理 HTTP 和 HTTPS 流量。這樣你就可以:
- 保留和更新 NGINX 主機上的所有證書,
- 通過 HTTP 代理對 VM 的請求。如果我理解正確,它們都在同一個物理主機上,所以明文流量只能通過虛擬網路介面,
- 保持 NGINX 上的 HTTP 埠始終打開,並使用它來更新證書和(HTTP)將普通流量重定向到 HTTPS 埠。
**編輯:**如果您還想加密 NGINX 和虛擬機之間的流量,或者正如您在評論中所說的那樣,您不想使用 NGINX 進行來自本地網路的連接,您可以將本地證書頒發機構用於內部伺服器.
從您的角度來看,它更安全,因為本地 CA 比外部權威更值得信賴。您只需將其添加到本地網路中的所有電腦,即可頒髮長期證書,而無需每 60 天更新一次。