正如我的回答 to 主机名/ IP与证书的altname不匹配中所指出的,当请求的主机名被指定为证书的公共名称(CN)时,Node.js会成功地验证主机名上的TLS证书。
Request : localhost
Common Name: localhost
=> Success现在,当我尝试相同的IP地址时,验证失败:
Request : 192.168.178.31
Common Name: 192.168.178.31
=> Fail只有当我将IP地址指定为Subject Alternative Name (SAN)时,它才能工作:
Request : 192.168.178.31
Common Name : 192.168.178.31
Subject Alternative Name: 192.168.178.31
=> Success不建议在证书中使用IP地址.
作为另一种选择,在回答中建议将IP地址添加为SAN(这反过来在Node.js中工作)。
现在我的问题是:不推荐并不意味着错误或禁止。除了不建议Node.js不支持CNs中的IP地址之外,是否有任何特定的原因,或者为什么这会带来风险(安全,无论如何,.)如果是的话?
发布于 2012-12-30 11:39:30
该实现仅与HTTPS规范兼容。
在某些情况下,URI被指定为IP地址而不是主机名。在这种情况下,iPAddress subjectAltName必须存在于证书中,并且必须与URI中的IP完全匹配。
当我在你引用的答案中说“不推荐”时,更多的是在使用HTTPS时使用IP地址。有些浏览器让你可以不使用它,但我也引用了规范,它确实使用了“必须”这个词。不用说,RFC比你在这里找到的任何答案都更权威。
https://stackoverflow.com/questions/14089872
复制相似问题