如何使用SSL保护Apache服务器之间的私人通信(仅限符号IP)

我有2个Apache服务器(使用PHP):

  • 承载网页的公共服务器A,具有域名等
  • 承载一些服务(构build为PHP应用程序)的公共服务器B,这些服务仅由服务器A使用(例如,PHP应用程序中的A使用curl函数调用服务器B PHP应用程序)。 也就是说 – B只对某些指定的服务器开放端口,包括A.没有给B分配域名,B只能通过使用B的IP地址被其他应用程序(例如服务器A应用程序)访问。 B在互联网上“保持低调”的意图。

我的意图是为B生成一个自签名的SSL证书来encryptionA和B之间的任何通信(通信可能涉及一些私人数据)。

但是有两个问题:

  1. SSL证书包含通用名称(域名),但服务器B没有。 IP地址可以用作通用名称吗? 证书是否有效?
  2. 目前我还不清楚服务器A上Apache基础设施的哪个组件会使用服务器-B证书,因此会encryption和解密交换的消息。 很明显,浏览器是这样做的,但在我的情况下,只有两个Apache服务器都有它的PHP应用程序。

我知道有更好的方法来pipe理这个任务 – 把服务器A和B放在(虚拟的)私人networking中,防止与外部的B直接通信(但由于组织原因,这是不可能的)。 但也许我的预期configuration可以工作?

许多应用程序都很高兴地使用SSL / TLSencryption,而不检查证书中的公用名称。 太多甚至不会产生关于CN不匹配的警告。

简单地生成自签名证书,如果IP地址不是有效的input使用主机名和testing…

当然,使用IPSEC将是一个有效的解决scheme。