是否可以为IP地址而不是域名使用SSL证书?


281

我希望我的网站使用诸如http://192.0.2.2/...https://192.0.2.2/...作为静态内容的URL ,以避免请求中不必要的cookie并避免其他DNS请求。

有什么方法可以为此目的获取SSL证书?


3
这个问题可能很有趣:您可以,但是IP地址应该在IP地址类型的SAN条目中,而不在主题DN的CN中。
布鲁诺

14
LetsEncrypt不会这样做。“”“” xxxx是IP地址。Let's Encrypt证书颁发机构将不会为裸IP地址颁发证书。“”“
kommradHomer

1
C / A浏览器论坛提供了一组发行策略。显然,浏览器紧随其后。CA / B不再允许IP地址。IETF维护另一套发行策略。IETF的PKI称为PKIX。PKIX允许IP地址。PKIX之后是大多数[免费?]软件,例如cURL和Wget。我不太清楚1.1.1.1的证书。根据CA / B政策,应禁止这样做。也许CA / B改变了他们的政策。
jww

Answers:


169

根据此答案,这是可能的,但很少使用。

至于如何获得它:我倾向于尝试与您选择的提供者一起订购,然后在订购过程中输入IP地址而不是域。

但是,在IP地址上运行站点以避免DNS查找对我来说听起来像是不必要的微优化。您最多可以节省几毫秒,也就是每次访问最多节省几毫秒,因为DNS结果被缓存在多个级别上。

从优化的角度来看,我认为您的想法没有道理。


9
AFAIK,IE每分钟1次(Firefox DNS缓存),每30分钟1次。这与DNS记录的TTL不同。我还要花大约20毫秒的时间,具体取决于域和NS服务器的速度(也要首先解决:))我也想避免每个静态请求都使用冗长的cookie(我的auth + Google Analytics(分析)cookie)。因此,使用IP而不是购买单独的域是好的。BTW,stackoverflow,basecamphq对静态内容使用单独的域。相反,使用IP也会删除不必要的DNS请求。
Evgenyt

12
我绝对会看到您对cookie的观点,您完全正确。但是,切换到SSL IP来节省几毫秒的DNS查找,这对我来说比它值得的麻烦。另外,如果您不得不更改提供商,则可能会遇到IP携带问题-这可能是不可能的。移动域要容易得多,并且应该可以轻松地将证书随即移动一半。
Pekka 2010年

2
Google的Page Speed工具始终建议“从主文档(xxxx.com)的同一主机上提供以下JavaScript资源,或在可能的情况下推迟加载这些资源”。我没有将Page Speed工具评为“圣经”,但是无论如何这意味着DNS优化不是我发明的。我只是想尽可能使我的Page Speed清单变成绿色。
叶夫根尼特(Evgenyt),2010年

11
@Evgenyt:我不认为这是由于DNS查找而造成的,正如所陈述的那样,DNS查找被缓存在多个级别上,因此不会成为性能问题。更可能的是使浏览器能够传递请求。使与主机的连接保持打开状态,从而避免设置其他连接。
vdstw 2011年

5
我同意答案。此外,我们发现这种配置存在问题。原来,如果将IP地址用作证书目标,则Android OS(4.4,5.0;在4.0,4上运行)的Chrome浏览器(39.0.2171.93)无法通过HTTPS播放音频文件。我们曾经在测试环境中使用过这种配置,但是将开始使用域名。
ENargit

58

简短的答案是肯定的,只要它是公共IP地址即可。

不允许向保留的IP地址颁发证书,并且自2016年10月1日起,以前颁发给保留的IP地址的所有证书均被吊销。

根据CA Browser论坛,除非IP地址同时位于commonNamesubjectAltName字段中,否则IP地址证书可能存在兼容性问题。这是由于旧版SSL实现与RFC 5280不兼容,尤其是Windows 10之前的Windows OS。


资料来源:

  1. 证书 CA浏览器论坛中 IP地址的指南
  2. 基准要求1.4.1 CA Browser论坛
  3. (很快)通用名称 unmitigatedrisk.com
  4. RFC 5280 IETF

注意:此答案的早期版本指出,所有IP地址证书将于2016年10月1日吊销。感谢Navin指出错误。


5
并非如此,globalsign仍会发布IP证书。证书颁发机构/浏览器论坛不喜欢看到证书中的私有IP,但不反对公共IP。
纳文

1
看来我的资讯可能已过期。如果您正确的话,我会对其进行更多研究,然后对其进行编辑。
regdoug

不正确,请看1.1.1.1 他们在2019年获得了IP的SSL证书,并从DigiCert到2021年有效
青铜人

@bronzeman是公共IP地址,是的,您可以为此获得证书。唯一无法颁发证书的地址是en.wikipedia.org/wiki/Reserved_IP_addresses
regdoug

@DustWolf,根据RFC 5280,“当subjectAltName扩展名包含iPAddress时,必须按照[RFC791]中的规定,以“网络字节顺序”将地址存储在八位字节串中。...对于IP版本4 ...,八位字节字符串必须包含正好四个八位字节。” 简而言之,您不能在subjectAltName字段中使用子网
regdoug

31

我猜答案是肯定的。例如,检查此链接

向公共IP地址颁发SSL证书

通常将SSL证书颁发给完全合格的域名(FQDN),例如“ https://www.domain.com ”。但是,某些组织需要颁发给公共IP地址的SSL证书。此选项使您可以在证书签名请求(CSR)中将公用IP地址指定为公用名。然后,可以将颁发的证书用于直接使用公共IP地址(例如https://123.456.78.99)保护连接的安全。


5
它也适用于静态专用IP吗?喜欢局域网吗?
Bonjour先生

@Klaus Byskov Pedersen您能否提供有关如何执行此操作的资源?
雷汉

2
@ShivSingh有消息来源吗?我不认为任何著名的CA都会向私有IP地址颁发证书。
富兰克林于


3

C / A浏览器论坛设置证书中的有效内容和无效内容,以及CA应当拒绝的内容。

根据其对公共信任证书的发行和管理的基本要求,自2015年以来,CA必须在公共名称或公共备用名称字段包含保留IP或内部名称(其中保留IP地址为IP)的情况下,不颁发证书是IANA列出的保留名称(包括所有NAT IP),内部名称是在公共DNS上无法解析的任何名称。

可以使用公共IP地址(基线要求文档指定CA必须执行哪些检查以确保申请人拥有IP)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.