首先,我在Tomcat上配置HTTPS,然后配置身份验证页面。 我的身份验证页面在HTTPS中与Tomcat-users.xml中的用户一起使用
<form action="j_security_check" method="POST">
Username:<input type="text" name="j_username"><br>
Password:<input type="password" name="j_password">
<input type="submit" value="Login">
</form>
在server.xml上我配置了一个领域
&LT; Realm className =“org.apache.catalina.realm.JNDIRealm”
的ConnectionURL = “LDAPS:// XXXXXXX:636” 调试= “99”
的connectionName = “MY_USER”
connectionPassword =“我的密码”
用户群= “MY_BASE”
userSearch = “XXXXXXXXXXXX”
userSubtree = “真”
roleBase = “XXXXXXXXXXX”
roleSubtree = “真”
ROLENAME = “XXXXX”
roleSearch = “XXXXXX”/&GT;
我使用命令keytool导入我的证书。
keytool -import -file om_certificat.pem -keystore cacerts
我应该做点什么吗?
当我启动tomcat时,我有这个警告: SSLHandshakeException
我这样做了,但是没有用! 我想,我的reaml是正确的,当我执行命令“keytool”时,我收到一条消息“证书已添加”。
那么,我的问题在哪里?我忘记了一步?
答案 0 :(得分:1)
如果您确实与LDAP证书建立了“信任”关系(例如将其导入您的本地密钥库),我经常看到的一个问题是它被导入到实际上根本没有使用的密钥库中。
仔细检查(如果未通过三重检查)您导入的cacerts文件以及tomcat使用的文件
编辑:通过快速检查,here他们说,你必须使用java的默认密钥库来实现LDAP信任(你可以在任何地方找到用于SSL / HTTPS设置的常用文档)。确保这一点的最简单方法(使用您可能在计算机上安装的所有不同的Java版本)是找到所有的cacerts
文件并导入您的LDAP证书一个人,然后重新启动(至少这是我最容易指出的,没有实际协助你)
您可能还想查看Imported certificate to Java keystore, JVM ignores the new cert以获取更多想法
答案 1 :(得分:0)
我解决了我的问题。
我在JVM 64位上添加了证书,但我的%JAVA_HOME%是为我的32位版本配置的。