2017-08-01 46 views
0

請原諒這個問題的庸俗性質,我不確定如何更好地說出它。明確SSL,DNS,網絡服務器的互動

我有一個nodejs服務器,它將通過第三方通過各種第三方DNS訪問(HTTP + websockets),在他們的DNS條目中添加一條指向我的IP的新A記錄。我可以通過查看請求標題找到第三方DNS名稱。然後,節點充當代理並最終修改請求標頭/添加元數據,然後再將請求轉發回第三方的另一個網址。

任何人都可以解釋一下,當第三方證書是發起DNS的通配證書時,SSL/TLS是如何運作的;如何將加密鏈傳遞給節點 - >是否需要在節點服務器上託管第三方證書的副本? (顯然我寧願不)。我可以使用第三方的原始SSL設置任何優勢?

非常感謝提前!

回答

1

DNS和HTTPS在這裏是非常不相關的。客戶端只使用DNS來查找Web服務器的IP地址。之後,http協議包含它在Host標題中請求的主機名,正如您已經確定的那樣。

您的服務器將需要每個HTTPS證書主機名稱將處理請求,否則瀏覽器將無法與其建立可信連接。證書顯示「此服務器有權處理對此主機名的請求」。

實際上,儘管DNS和HTTPS是相關的,因爲如果您控制dns,您可以頒發證書。 Let's Encrypt已經使這非常容易設置。

我不會建議與第三方共享證書,因爲這可能會有點痛苦,並且如果您通過電子郵件向他們發送郵件或其他內容,則更難保證私鑰的安全。只需爲需要提供服務的第三方域頒發自己的證書。

我個人最喜歡的解決方案就是在我的應用程序前面運行一個caddy服務器實例,以自動管理https證書,並向您的節點後端代理請求。它在接收請求時甚至可以issue certs dynamically

+0

謝謝你的解釋,現在更有意義。血腥地獄球童看起來真棒!我一直在使用讓我們加密,但沒有意識到這可以做到如此無縫,謝謝! – Tobin