转载请注明文章出处: 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证书!
结论:毫无疑问是没问题的
测试结果与理论相符(付款及后续步骤没验证)。