轉載請註明文章出處: https://tlanyan.me/get-ssl-ce...
昨天寫"公共DNS服務器整理"一文整理素材時,訪問Cloudflare公共DNS服務的官網,發現網站居然是「https://1.1.1.1」!html
恕我孤陋寡聞,這是平生第一次見到以"https"方式訪問公網IP(固然CF DNS的另外一個IP也是以https方式訪問:"https://1.0.0.1")。用多款瀏覽器測試,均認爲這是一個合法的請求地址。查看證書,是由DigiCert簽發的合法證書:瀏覽器
能夠明確如下事實:服務器
1.1.1.1
確定是一個IP;.1
不是頂級域名後綴(TLD);1.1.1.1
不是域名/主機名(FQDN);總結起來一句話:能給IP頒發合法SSL證書?工具
在superuser網站上,有相似的疑惑:Why does my browser think that https://1.1.1.1 is secure?。根據網友答案,能夠給公網IP頒發證書,但罕見。測試
確承認覺得IP簽發證書,繼續查資料,找到以下信息:網站
根據第二條,我的不能爲IP申請證書;若是沒有IP全部權,企業或機構從雲廠商獲取到的IP也不能申請證書,由於有使用權但沒有全部權。域名比IP(相對)更容易獲取,而且一個域名能夠對應多個IP,故而極少有爲IP申請證書的狀況。ui
弄清楚其中道理,接下來驗證一下與理論是否相符。spa
先請出免費獲取證書的Let's Encrypt
的certbot
工具,嘗試爲IP頒發證書,輸出以下:3d
[root@xxxx ~]# certbot certonly --standalone -d xxx.xxx.xxx.xxx Requested name xxx.xxx.xxx.xxx is an IP address. The Let's Encrypt certificate authority will not issue certificates for a bare IP address.
結論:Let's Encrypt
不能爲IP簽發證書!code
接着嘗試從證書頒發機構獲取。在DigiCert
的訂單頁面,主機名一欄對輸入數據的反饋以下:
結論:公網IP能夠獲取SSL證書!
結論:不能爲內網IP簽發SSL證書!
結論:毫無疑問是沒問題的
測試結果與理論相符(付款及後續步驟沒驗證)。