Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么Node.js只接受SAN的证书中的IP地址,而不是CN?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
正如我在 answerHostname / IP doesn’t match certificate’s 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地址指定为主题备用名称(SAN)时才有效:

request                 : 192.168.178.31
Common Name             : 192.168.178.31
Subject Alternative Name: 192.168.178.31
=> success

answerIP address as hostname (CN) when creating a certificate? (HTTPS hostname wrong: should be <ipAddress>)所述,

作为替代方案,建议在answerHow are SSL certificate server names resolved/Can I add alternative names using keytool?中将IP地址添加为SAN(其反过来在Node.js中工作).

现在我的问题是:不推荐并不意味着错误禁止.是否有任何具体原因,除了不建议Node.js不支持CN中的IP地址,或者为什么它会成为风险(安全,无论如何……)如果有的话?

解决方法

该实现仅符合 HTTPS specification

当我在你引用的答案中说“不推荐”时,更多的是在使用httpS时一般使用IP地址.有些浏览器让你逃脱它,但我也引用了那里的规范,它确实使用了“必须”这个词.不用说RFC比你在这里找到的任何答案更具权威性.

大佬总结

以上是大佬教程为你收集整理的为什么Node.js只接受SAN的证书中的IP地址,而不是CN?全部内容,希望文章能够帮你解决为什么Node.js只接受SAN的证书中的IP地址,而不是CN?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。