我有一个使用OAUTH2和SSL的spring boot应用程序。 域控制器的证书已安装到我的证书存储中,并且我使用的端口等正确。
现在,如果我直接连接到域控制器,那么一切正常,握手就可以了,因为我要直接进行操作
javax.net.ssl | DEBUG | 4A | RMI TCP Connection(5)-10.81.64.12 | 2020-10-28 10:11:36.950 GMT | ClientHello.java:653 |产生的ClientHello握手消息( “ ClientHello”:{ “客户端版本”:“ TLSv1.2”, “压缩方法”:“ 00”, “扩展名”:[ “ server_name(0)”:{ 类型=主机名(0),值= DOMAINCTL1.mydomain.com }
但是,如果我通过域控制器上的负载平衡器,那么它将使用平衡器地址,该地址不是证书所包含的地址,因为证书位于域控制器而不是负载平衡器上。
javax.net.ssl | DEBUG | 4E | Thread-11 | 2020-10-28 10:17:02.340 GMT | ClientHello.java:653 |产生的ClientHello握手消息( “ ClientHello”:{ “客户端版本”:“ TLSv1.2”, “扩展名”:[ “ server_name(0)”:{ type = host_name(0),值= ad-dev.mydomain.com }
关于如何将域控制器识别为证书检查而非负载平衡器的任何想法。
org.springframework.ldap.CommunicationException:简单绑定失败:ad-dev.mydomain.com:636;嵌套异常是javax.naming.CommunicationException:简单绑定失败:ad-dev.mydomain.com:636 [根本异常是java.net.SocketException:连接或出站已关闭]
答案 0 :(得分:0)
证书在域控制器上,而不在负载平衡器上
证书必须在进行SSL握手的任何地方。如果它是负载均衡器(可能是),那么它必须在那儿。
如何将域控制器识别为证书检查
这是不可能的,并且会完全破坏安全性。您需要一个在正确位置具有正确证书的系统。如果希望DC进行握手,则需要一个TCP级别的负载平衡器。