哪些 ssl 證書位於反向代理上?- nginx
需要澄清 nginx 反向代理伺服器上的上游 SSL
我一直在閱讀有關反向代理和保護與上游伺服器的 ssl 連接的 nginx 文件,但我仍然對哪些 ssl 證書去哪裡感到困惑。我發現的許多範例都有 nginx 代理 localhost,但我的情況是端點位於不同的伺服器、埠和物理位置。
我想在 nginx 伺服器上解析幾個域。這些域中的每一個在其目前伺服器上都有一個用於其實際域名的 ssl 證書。
現在我讓每台伺服器都在它自己的網路位置和物理位置執行,但我希望有一個點來管理這些端點。
我的最終結果應該看起來像
client | nginx https://example1.com https://example2.com https://example3.com x.x.x.x | ----------------------------------------- | | | https://example1.com https://example2.com https://example3.com a.b.c.d:1234 e.f.g.h:5678 i.j.k.l:9012
現在https://example1.com解析為 abcd:1234 ,它安裝了自己的 ssl 證書。因為我需要向客戶端表示 nginx 伺服器正在為域 example1.com 服務,所以我認為我需要將 example1.com ssl 移動到前端執行的 nginx 伺服器,對嗎?如果我這樣做,我在 abcd:1234 上使用什麼 ssl 證書來維護安全的上游連接?
nginx 文件說 client.crt 和 server.crt,但 CA 使用域來註冊這些。反向代理情況下的客戶端和伺服器是什麼?對我來說,客戶端是發出請求的瀏覽器。
哪些 ssl 證書位於反向代理上?
編輯:
我已經知道你可以通過簡單地將基於 url 的證書放在代理伺服器上來看起來像你有一個安全的連接。我希望知道在後端伺服器上放置什麼 ssl 證書。只是重複使用他們各自的證書?
example1.com.crt
代理伺服器和後端伺服器都可以嗎?
域的證書應該放在客戶端“看到”它的地方,所以在你的情況下,如果你只希望 nginx 伺服器可以從網際網路上使用,那麼所有公共證書都應該轉到 nginx 伺服器。
如果您想保護後端連接,您可以在這些伺服器上使用您想要的任何證書。您甚至可以使用自簽名證書,並在 nginx 伺服器上禁用證書檢查,但創建自己的 CA 並將證書分發到後端可能更明智。
您的配置看起來就像您繪製的一樣,除了後端伺服器將具有與其“內部”名稱匹配的內部證書:
client | nginx (https://example1.com) (https://example1.com) (https://example1.com) | +---------------------------------------+-----------------------------------+ | | | | | | https://example1.internal.local/ https://example2.internal.local/ https://example3.internal.local/ a.b.c.d e.f.g.h i.j.k.l
如果後端伺服器可以從 Internet 訪問,那麼您可能希望為它們的 https 埠設置防火牆,以便只有 nginx 伺服器可以連接它們。
關於您關於客戶端和伺服器的問題:在網路中,客戶端是發起連接的人。因此,在您的設置中,瀏覽器是客戶端,而 nginx 伺服器同時是客戶端和伺服器:它是瀏覽器的伺服器,但它是後端伺服器的客戶端。