公共 IP 地址的 SSL 證書?
我剛剛嘗試購買 Comodo Positive SSL,但由於不支持公共 IP 地址而被拒絕,但他們只支持域名。
有誰知道任何支持公共 IP 地址而不是域名的 SSL 證書提供商?
我的公司有一個由網路託管公司託管的專用伺服器,用於為多個項目(用於多個客戶)執行錯誤跟踪器。由於它僅用於 bugtracker,因此我們不需要域名(我們的客戶通過在瀏覽器中輸入公共 IP 來訪問它)。
我認為你可以做到這一點,但不是你試圖這樣做的方式。
SSL 證書是將公共加密密鑰綁定到 X.500 結構的聲明,該結構包括 CN 或通用名稱元素;簽名證書是一種綁定由第三方證書頒發機構可驗證地認證的證書,使用最終使用者已知的公鑰(位於瀏覽器中的證書頒發機構 (CA) 證書堆棧)。
當您使用瀏覽器訪問受 SSL 保護的網站時,瀏覽器會知道已簽名的 CN。 瀏覽器選擇用它做什麼取決於瀏覽器。 我知道的瀏覽器將其與請求的主機名進行比較,如果它不同則出錯(或者如果該認證綁定經不起分析,例如瀏覽器不知道簽名證書或綁定已過期 -過時的,但這是一個不同的問題)。原則上沒有什麼可以阻止您獲得公開簽名的證書,其中 CN 是 IP 地址而不是 FQDN(完全合格的域名)
$$ 1 $$,但這不會神奇地讓瀏覽器將 CN 與 IP 地址進行比較,而不是與請求的主機名進行比較。 我懷疑解決您問題的最簡單方法是啟動自己的CA,這很容易做到,並且有很多關於的公共教程;一個在這裡。一旦您的最終使用者將您的 CA 導入他們的瀏覽器,您創建的所有證書都將被接受為權威證書。
然後您可能會遇到第二個問題,即您希望在單個 IP 地址上執行許多 NameVirtualHost 站點。這在歷史上是不可克服的,因為(與 TLS 不同)SSL 協商發生在連接上的其他任何事情之前;也就是說,在客戶端能夠說出他們試圖連接的主機之前,嵌入在證書中的 CN 被客戶端知道並被客戶端使用。
最近,似乎引入了一個名為 SNI(伺服器名稱指示)的協議擴展,它允許客戶端和伺服器在提供 SSL 證書之前表明他們想要做一些主機名的事情,允許一組中的正確一個伺服器提供的證書數量。顯然,這需要 apache 2.2.10,一個足夠新的 OpenSSL 版本,以及(重要的)客戶端支持。
因此,如果我必須做你想做的事情,我會考慮鑄造我自己的 CA 證書,告訴我的最終使用者他們必須使用支持 SNI 的瀏覽器並導入我的 CA 根證書,然後切割和為每個 bugtrack 站點簽署我自己的 SSL 證書。
$$ 1 $$好的,您可能找不到任何人會這樣做,但這是一個實現細節。我想在這裡展示的是,即使你這樣做了,它也不能解決你的問題。