通常,服务器端将验证客户端证书通用名(CN)是否与客户端域名(DN)匹配。
但我需要扩展安全检查。我需要验证客户端入站 IP 地址是否与客户端域名 DNS IP 地址匹配。
例如:-
- 客户端服务器证书 CN 和域名为“test.123.net”。且“test.123.net”DNS(A)记录 IP 地址 = 1.1.1.1。
- 连接是 https。
- 当此客户端向我的服务器发送请求时,首先,我需要验证客户端 IP 地址是否与 DNS IP 地址匹配。在这种情况下,客户端入站 IP 地址应该使用 IP 地址 = 1.1.1.1。
- 第二步,验证证书CN是否与域名匹配。本例中为“test.123.net”,与客户端传入域名匹配。
我知道我可以使用 OpenSSL 或 Apache 进行 CN 和 DN 验证,但我找不到任何方法来验证客户端 IP 地址是否与 DN DNS IP 地址匹配。
请问市场上有没有什么工具可以做到这一点?或者任何网络服务器都可以做到这一点?我尝试用谷歌搜索了很长时间,但什么也没找到。
谢谢,
答案1
另一种方法可能会对您更有帮助。
首先,很少有组织拥有自己的 IP 地址空间,对于他们来说,设置正确的反向 DNS 是一件麻烦事,需要联系他们的 ISP 并请求该服务。这通常是一个手动过程。这意味着在“典型”情况下,您不知道哪个组织当前正在以比 ISP 级别更严格的粒度使用特定 IP 地址。
反过来,这意味着,如果您想要进行显式客户端证书查找,您将要求客户端创建自签名证书并向您提供相应的 CA 链,该链从他们的角度标识该证书有效,或者从知名 CA 购买证书,您可以独立验证该证书。在这种情况下,不需要验证 IP 地址,因为不拥有正确私钥的窃听者只会收到您发送的加密信息 - 使用合法客户端的公钥加密的信息。
如果您希望进一步提高安全性,请规划 VPN 隧道。另一种选择(不一定能有效抵御有针对性的攻击)是将系统的访问权限限制为明确的 IP 地址。