使用公共和私有IP的自签名证书(Tomcat 7)

我正在configuration一个同时拥有公共和私有IP的服务器。 它没有任何关联的域名。

使用自签名证书访问下面的URL可正常工作:

https://<PUBLIC IP>:8443 

但是,当我尝试使用其专用IP访问该服务器时:

  wget https://<PRIVATE IP>:8443 

我得到以下错误:

错误:无法validation由'/ C =?/ ST =?/ L =?/ O =?/ OU =?/ CN = Unknown'发出的证书:遇到自签名证书。 错误:证书通用名称“未知”与请求的主机名称“不匹配”。 要不安全地连接,请使用`–no-check-certificate'。

有没有一种方法可以在configuration中指定公共和私有IP应该被接受?

我也尝试在包含地址属性的server.xml中包含多个连接器,但不起作用。

我想你在这里有两个基本的问题。 首先,虽然Windows(据我所知)实现了一个中央证书存储和validation机制,通常这些应用程序调用(例如)validationSSL证书,但UNIX应用程序都是自己的。 所以,仅仅因为一个浏览器的作用,并不意味着另一个浏览器或者wget ,而PHP脚本将会做的是一个完整的谜题,完全依赖于所讨论的库。

其次,你已经决定使用一个embedded了IP地址而不是主机名的SSL证书,而在这些部分之前, 我们遇到 了这样的问题 。

我自己的感觉是,继续尝试制定这个战略并不是一个好时机。 相反,注册一个域名 – 它们几乎没有成本,而且通常比IP地址更容易input – 并设置水平分割DNS,以便内部客户端获得内部地址,外部客户端获得外部地址。 这一举消除你的两个问题。

看起来你试图从互联网(使用NAT)和从内部局域网(直接)访问服务器,这就是你使用两个IP地址的原因。 如果是这种情况,请查看类似的情况,以及如何通过Internet和LAN使公用IP可用的服务器:

思科静态NAT不能在LAN侧工作

从而避免证书混乱。 (查找具有辅助IP的解决scheme。)