我正在尝试通过Jboss应用程序中的CAS + LDAP进行身份验证。配置是这样的:
我已将两个jboss配置为正确使用SSL,并且CAS succesfyuly会对LDAP进行读取和身份验证。
当我到达(通过https)server1:8443 / app /我被重定向到server2:8443 / cas /并显示登录屏幕。我在LDAP上使用有效用户登录,但当流程回到应用程序时,我总是得到这个:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
我已经阅读了它的证书问题,因为它是一个开发环境,我正在尝试自签名证书。所以我这样做了:
使用
在Server1中签名的自我keytool -genkey -alias jbosskey -keypass password -keyalg RSA -keystore server.keystore
获取Server1的证书:
keytool -export -alias jbosskey -keypass password -file server.crt -keystore server.keystore
将server.crt复制到Server2并将其导入Jboss的信任库。
keytool -import -alias server1 -file server.crt -keystore C:\ dev \ jboss-6.1.0.Final \ server.truststore
这让我意识到了。所以我也导入了JVM的cacerts。
keytool -import -alias server1 -file server.crt -keystore C:\ dev \ jdk160_18 \ jre \ lib \ security \ cacerts
不工作,所以我尝试将证书添加到Server2的Jboss的密钥库中。
keytool -import -alias server1 -file server.crt -keystore C:\ dev \ jboss-6.1.0.Final \ keystore.jks
Server1 Jboss server.xml
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="${jboss.web.https.port}" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/server.keystore"
keystorePass="password" sslProtocol = "TLS"
/>
Server2 Jboss server.xml
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="C:\dev\jboss-6.1.0.Final\keystore.jks"
keystorePass="password"
truststoreFile="C:\dev\jboss-6.1.0.Final\server.truststore"
truststorePass="password"
sslProtocol = "TLS" />
我被困在这几天,不知道我是否遗漏了什么。我是否错过了使用keytool重要的东西?
提前致谢。