我正在编写一个分布式应用程序,该应用程序将出售给多个客户并在本地托管。此应用程序作为分布式系统运行,其中许多相同的应用程序通过 HTTPS 作为 RESTful 服务相互通信。
知道我无法控制这些应用程序使用的 IP 地址或域名,我仍然需要应用程序附带的默认 TLS 证书(可覆盖以满足安全合规性)。
CN
我可以在 openssl 中为我的字段指定一个通配符名称,*
但是当一个节点尝试到达另一个节点时,证书与其托管的 IP 地址不匹配。
Python 请求库给出错误:WARNING:urllib3.connection:Certificate did not match expected hostname: 192.168.1.150.
- 我不是在询问上述错误,这只是为了描述我的问题。
例子
主持人A:192.168.1.150:5000
主机B:192.168.1.151:5000
证书CN:*
HostB -> HostA
不起作用,因为证书未指定192.168.1.150
为地址。
有没有合适的方法来处理这个?我知道有些路由器附带默认证书,但他们可以控制自己的主机地址。
您当然可以发送默认的 TLS 证书。你不能做的是让它不抛出安全警告。如果这对他们来说是一个问题,则由最终用户替换证书,并且由产品的开发人员来尽可能方便地更换证书。