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

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

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

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

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

但有两个问题:

  1. SSL 证书包含通用名称(域名),但服务器 B 没有。IP 地址可以用作通用名称吗?证书能用吗?
  2. 目前我不清楚服务器 A 上的 Apache 基础架构的哪个组件将使用服务器 B 证书并相应地加密和解密交换的消息。很明显浏览器会这样做,但在我的例子中只有两台 Apache 服务器,每台服务器都有自己的 PHP 应用程序。

我知道有更好的方法来管理这样的任务 - 将服务器 A 和 B 放在(虚拟)私人网络中,并阻止外部世界与 B 直接通信(但由于组织原因,在我的案例中这是不可能的)。但也许我预期的配置也可以工作?

答案1

许多应用程序乐于使用 SSL/TLS 加密,而不检查证书中的通用名称。太多甚至不会生成有关 CN 不匹配的警告。

只需生成自签名证书,如果 IP 地址输入无效,则使用主机名并测试...

当然,使用 IPSEC 也是一个有效的解决方案。

相关内容