我希望我的网站使用http://192.0.2.2/...
和https://192.0.2.2/...
等网址来获取静态内容,以避免在请求中出现不必要的Cookie并避免额外的DNS请求。
有没有办法为此目的获得SSL证书?
答案 0 :(得分:132)
根据this answer,它是可能的,但很少使用。
至于如何获得它:我倾向于尝试用您选择的提供商订购一个,并在订购过程中输入IP地址而不是域名。
但是,在IP地址上运行网站以避免DNS查找听起来非常像对我不必要的微优化。您最多可以节省几毫秒,即每次访问,因为DNS结果会缓存在多个级别上。
从优化角度来看,我认为你的想法没有意义。
答案 1 :(得分:50)
简短的回答是肯定的,只要它是公共IP地址。
不允许向保留的IP地址发放证书,并且自2016年10月1日起,以前发布到保留IP地址的所有证书都被撤销。
根据CA浏览器论坛,除非IP地址同时位于commonName
和subjectAltName
字段,否则IP地址证书可能存在兼容性问题。这是由于传统的SSL实现与RFC 5280不一致,特别是Windows 10之前的Windows操作系统。
来源:
注意:此答案的早期版本声明所有IP地址证书将于2016年10月1日撤销。感谢Navin指出错误。
答案 2 :(得分:28)
我想答案是肯定的。例如,检查this link。
向公共IP地址颁发SSL证书
SSL证书通常颁发给完全限定域名(FQDN),例如“https://www.domain.com”。但是,某些组织需要颁发颁发给公共IP地址的SSL证书。此选项允许您在证书签名请求(CSR)中将公共IP地址指定为公用名。然后,可以使用颁发的证书直接保护与公共IP地址的连接(例如https://123.456.78.99。)。
答案 3 :(得分:15)
是的。 Cloudflare将其用于DNS指令首页:https://1.1.1.1
答案 4 :(得分:3)
答案是肯定的。简而言之,它是主题备用名称(SAN)证书,其中包含IP,通常您会在其中看到DNS条目。证书类型不限于公共IP,该限制仅由签名机构而不是技术来施加。我只是想澄清这一点。我怀疑您真的只是想摆脱内部网站和设备上那种令人讨厌的不安全提示,而不必花很多钱,也不必给他们提供DNS名称,然后再花一两年的时间支付CA颁发证书的麻烦。您不应该试图说服全世界,您的IP地址是一个著名的网站,人们应该放心提供他们的付款信息。既然我们已经确定了为什么没有信誉良好的组织想要颁发这种类型的证书,让我们自己使用自签名的SAN证书来进行。在内部,我有一个已部署到我们所有主机的受信任证书,然后我用它签署了这种类型的证书,所有设备都变得受信任。这样做不在问题的范围之内,但我认为它与讨论相关,因为问题和解决方案是相辅相成的。简而言之,这是如何生成具有IP地址的单个自签名SAN证书。展开IP列表以包括整个子网,并对所有内容使用一个证书。
#!/bin/bash
#using: OpenSSL 1.1.1c FIPS 28 May 2019 / CentOS Linux release 8.2.2004
C=US ; ST=Confusion ; L=Anywhere ; O=Private\ Subnet ; EMAIL=admin@company.com
BITS=2048
CN=RFC1918
DOM=company.com
SUBJ="/C=$C/ST=$ST/L=$L/O=$O/CN=$CN.$DOM"
openssl genrsa -out ip.key $BITS
SAN='\n[SAN]\nsubjectAltName=IP:192.168.1.0,IP:192.168.1.1,IP:192.168.1.2,IP:192.168.1.3,IP:192.168.1.4,IP:192.168.1.5,IP:192.168.1.6,IP:192.168.1.7,IP:192.168.1.8,IP:192.168.1.9,IP:192.168.1.10'
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf
echo -e "$SAN" >> /tmp/openssl.cnf
openssl req -subj "$SUBJ" -new -x509 -days 10950 \
-key ip.key -out ip.crt -batch \
-set_serial 168933982 \
-config /tmp/openssl.cnf \
-extensions SAN
openssl x509 -in ip.crt -noout -text
答案 5 :(得分:2)
“ C / A浏览器”论坛设置证书中的有效内容和无效内容,以及CA应拒绝的内容。
根据其Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates文档,自2015年以来,CA必须不颁发证书,其中公共名称或公共备用名称字段包含保留IP或内部名称,其中保留IP地址是IANA列出的IP保留-包括所有NAT IP-且内部名称是在公共DNS上不解析的任何名称。
可以使用公共IP地址(基线要求文档指定了CA必须执行哪些检查以确保申请人拥有IP。
答案 6 :(得分:0)
这完全取决于颁发证书的证书颁发机构。
就让我们加密CA而言,他们不会在公共IP地址上颁发TLS证书。 https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082
要了解您的证书颁发机构,可以执行以下命令并查找下面标记的条目。
curl -v -u <username>:<password> "https://IPaddress/.."