Jboss アプリで CAS+LDAP を介して認証しようとしています。構成は次のようになります。
- サーバー 1: Jboss 6.10。Cas はここに配置されます。
- サーバー 1: OpenDS を使用する LDAP。
- サーバー 2: アプリがログインする Jboss。
SSL を正しく使用するように両方の jboss を設定し、CAS は 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 パスワード -keyalg RSA -keystore server.keystore
次を使用して Server1 の証明書を取得します。
keytool -export -alias jbosskey -keypass パスワード -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 で何か重要なことを見逃していませんか?
前もって感謝します。