rak*_*rma 2 ssl openssl certificate ssl-certificate x509certificate
我使用IP地址而不是DNS名称访问服务器时收到错误的证书错误.
是否在tls1.1中新引入了此功能.和tls 1.2?如果有人指出OpenSSL代码失败并返回错误的证书错误,那将是件好事.
为什么我们使用IP地址而不是dns名称访问服务器时会出现错误的证书错误?
它取决于您使用的颁发/验证策略,用户代理和OpenSSL的版本.因此,为了给您一个精确的答案,我们需要了解您的配置.
一般来说,假设www.example.comIP地址为www.xxx.yyy.zzz.如果通过连接https://www.example.com/...,则连接应该成功.如果您通过浏览器连接,https://www.xxx.yyy.zzz/...那么它应该总是失败.如果您通过其他用户代理连接,https://www.xxx.yyy.zzz/...那么如果证书包含www.xxx.yyy.zzz,则应该成功; 否则就失败了.
颁发/验证政策
有两个机构主导发布/验证政策.他们是CA /浏览器论坛和互联网工程任务组(IETF).
浏览器,如Chrome,Firefox和Internet Explorer,遵循CA/B基准要求(CA/B BR).
其他用户代理(如cURL和Wget)遵循IETF颁发和验证策略,如RFC 5280,Internet X.509公钥基础结构证书和证书吊销列表(CRL)配置文件和RFC 6125,基于域的应用程序服务标识的表示和验证在传输层安全(TLS)环境中使用X.509(PKIX)证书的Internet公钥基础结构中.RFC比CA/B发布策略更加宽松.
用户代理
不同的用户代理具有适用于DNS名称的不同策略.有些人希望在DNS中找到传统的主机名,而其他人则需要IP地址.
浏览器仅允许主题备用名称(SAN)中的DNS主机名.如果SAN中缺少主机名,则不会发生匹配.将服务器名称放在通用名称中是浪费时间和精力,因为浏览器需要SAN中的主机名.
浏览器与SAN中的公共IP地址不匹配.他们有时会允许来自RFC 1918的私有IP ,私有互联网的地址分配.
其他用户代理允许主题备用名称(SAN)中的任何名称.它们还将匹配通用名称(CN)和主题备用名称(SAN)中的名称.名称包括DNS名称,如www.example.com公共IP地址,私有IP地址192.168.10.10和本地名称,如localhost和localhost.localdomain.
OpenSSL版本
OpenSSL 1.0.2及更低版本未执行主机名验证.也就是说,你必须自己进行匹配.如果您没有自己执行主机名验证,则表明连接始终成功.另请参阅OpenSSL wiki上的主机名验证和TLS客户端.
OpenSSL 1.1.0及更高版本执行主机名匹配.如果切换到1.1.0,那么如果您没有执行与自己匹配的主机名,或者您没有严格遵循颁布策略,则应该开始遇到故障.
如果有人指出OpenSSL代码失败并返回错误的证书错误,那将是件好事.
签到发生在2015年初,从那时起,它们已在Master(即1.1.0-dev)中可用.该代码也可以在1.0.2中使用,但您必须执行特殊操作.例程在1.0.1或更低版本中不可用.另请参阅OpenSSL wiki上的主机名验证.我没有Git签到,因为我现在在Windows机器上.
有关名称及其位置的规则的更多信息,请参阅如何使用您的证书颁发机构签署证书签名请求以及如何使用openssl创建自签名证书.至少还有四到六个文档覆盖它们,比如需要为HTTP严格传输安全(HSTS)和HTTP覆盖的公钥固定提供方式.
| 归档时间: |
|
| 查看次数: |
2582 次 |
| 最近记录: |