具有不同所有者的 https 的兩個網域之間重定向的要求

具有不同所有者的 https 的兩個網域之間重定向的要求

我最近開始擔任系統工程師。然而,我仍然缺少一些基礎知識,特別是關於 SSL/TLS 憑證及其與 DNS 的關係。

這是用例:

  • 我們合作的一家公司擁有自己的網站和域名,以及自己的 SSL 憑證。我們將在這裡調用我想使用的他們的域名data.example.com
  • 我們使用自己的 SSL 憑證來託管自己的網站和網域。我們將在這裡調用我想使用的域名ourdata.ourexample.com
  • 我們合作的公司希望的是,當你去https://data.example.com,你實際上得到了內容https://ourdata.ourexample.com

對此,我理解有兩種可能:

  1. (對我來說很清楚)透過 nginx/apache 在 Web 伺服器層級建立重定向:這意味著兩個網域仍然擁有自己的 SSL 證書,但這只是在設定檔中編寫一些行的問題,與任何DNS 配置。
  2. (這對我來說開始變得複雜)要求我們合作的公司向我們提供企業社會責任資訊(https://en.wikipedia.org/wiki/Certificate_signing_request)這樣我們就可以從我們用來產生我們自己的 SSL 憑證的私鑰產生一個 CSR 檔案...?然後我們移交 CSR,他們為自己的 SSL 憑證付費。然後他們可以創建一個新的 CNAME 來重定向data.example.com。ourdata.ourexample.com。。據我所知,CSR 是一種公鑰,這就是為什麼我們可以輕鬆地將其交給其他人。但即使這個描述正確地描述了這個過程,我真的不知道在哪裡發生了什麼以及為什麼要這樣做。

最後,我注意到,在我們端產生 CSR 並建立 CNAME 的情況下,當我們轉到https://data.example.com,我們看到的內容https://ourdata.ourexample.com且瀏覽器中顯示的 URL 仍然存在https://data.example.com。我不確定這是否與某些 Web 伺服器配置或 DNS「設定」有關。

我希望我所描述的內容有些清楚。如果沒有,請告訴我,我會盡力提供更多詳細資訊。

注意:我已經嘗試找到這個問題的一些答案,但是雖然我已經理解了一些事情,但仍然不是 100% 清楚。

謝謝,沉默的西布

答案1

我假設data.example.com將託管在你的場所,並且example.com不希望他們的客戶看到您正在提供服務。

如果是這種情況你只需要兩個 Apache虛擬主機或兩個 nginx虛擬伺服器配置為提供相同的內容。

證書呢?如果你理解了這些概念的話,其實並不是很複雜公鑰密碼學

基本上(在最廣泛部署的演算法之一中,RSA),你有兩把鑰匙AB。用 加密的資料A只能用 解密BA無法解密),反之亦然。你分發其中一個並稱之為公鑰,另一個保密並稱為私鑰。公鑰用於加密只有您可以解密的數據,私鑰也可用於簽名:透過使用私鑰加密預先商定的位元組序列(例如訊息的雜湊值),其他人都可以解密它並驗證您是否擁有私鑰。

該的其他部分公鑰基礎設施是:

  • 憑證:包含您的公鑰、網域和一些其他資料的文件,由受信任的人簽名私鑰(其公鑰被每個瀏覽器分發和信任)。只有網域位於憑證上,而不是任何其他資料DNS(如果需要,您可以要求將您的 IP 位址新增至憑證),因此當發生變更時您不必變更它們。
  • CSR:幾乎與證書相同。它包含您的公鑰、您的網域和一些其他數據,由您簽名私鑰(以表示您擁有鑰匙)。實際上,憑證授權單位僅使用 CSR 中的公鑰,有時還會使用網域名稱(如果他們不從 HTML 表單中取得網域名稱)。

私鑰很便宜(在繁忙的伺服器上產生幾秒鐘)。您的客戶端不太可能對data.example.com和使用相同的私鑰example.com(除非它們在同一個憑證上具有兩個名稱)。所以:

  • 如果您的客戶已經擁有 的證書data.example.com,請要求他們向您發送證書和相應的私鑰(以安全的方式)。他們將不再使用它們,
  • 如果您的客戶端沒有 的證書data.example.com,請生成新的私鑰並對其進行驗證。將私鑰用於您的其他網域。通常,即使在更新憑證時也會產生新的私鑰。如果你戴上ourdata.example.net同一個證書,每個人都會看到誰在提供data.example.com服務。
  • 您也可以使用讓我們加密如果您的客戶同意他們的條款。這樣您就可以在幾秒鐘內獲得有效的證書,而無需額外費用。

相關內容