AD域连接出错问题simple bind failed:IP:PORT----SSL连接AD域

文章描述了在Java环境中遇到的一个SSL连接错误,具体是javax.naming.CommunicationException,原因是SSL握手失败。为解决这个问题,文章提供了导入证书到JDK密钥库的步骤,使用keytool命令,并修改了hosts文件以匹配证书上的域名。接着展示了一个初始化LDAP连接的Java代码示例,确保SSL协议的使用,以实现AD域的身份认证。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1、报错提示:

javax.naming.CommunicationException: simple bind failed: :636 [Root exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address found]

2、导入证书

进入jdk的bin目录,运行命令运行框
将cer文件加入到jdk密钥库中。

keytool -import -keystore D:\Java\jdk1.8.0_211\jre\lib\security\cacerts -storepass changeit -keypass changeit -alias ca -file D:/证书1.cer

keytool -import -keystore D:\Java\jdk1.8.0_211\jre\lib\security\cacerts -storepass changeit -keypass changeit -alias ca_1 -file D:/证书2.cer

3、修改host

进入本地C:\Windows\System32\drivers\etc\hosts修改hosts

在这里插入图片描述添加IP和域名,域名为证书上的域名,
在这里插入图片描述

4、代码编写

public void certinit() {
		Properties env = new Properties();
		String adminName = "cn=Administrator,cn=Users,dc=hct,dc=com";
		String adminPassword = "Admin123456";// password
		String ldapURL = "ldaps://WIN-6NQKI1CT5ST.hct.com:636";// ip:port
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.SECURITY_AUTHENTICATION, "simple");// LDAP访问安全级别:"none","simple","strong"
		env.put(Context.SECURITY_PRINCIPAL, adminName);
		env.put(Context.SECURITY_CREDENTIALS, adminPassword);
		env.put(Context.PROVIDER_URL, ldapURL);
 
		env.put(Context.SECURITY_PROTOCOL, "ssl");
 
		try {
			LdapContext lc = new InitialLdapContext(env, null);
			System.out.println("AD域ssl身份认证成功");
		} catch (Exception e) {
			System.out.println("AD域ssl身份认证出错");
			e.printStackTrace();
		}
	}

就ok了

参考:
Java采用SSL连接AD域连接出错问题simple bind failed:IP:PORT解决方案

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值