2

簡単に言えば、私の上司は、私たちが作成した多くのアプリケーションでシングルログインを使用したいと考えており、このニーズのために CAS を試しています。

SSO として CAS をインストールしようとしています。Java bin の keytool から jks ファイルを生成します。いくつかのサービスを追加しようとするまで、ログインとログアウトは正常に機能します。

https://localhost:8443/cas/services/j_acegi_cas_security_check?ticket=ST-2-Ts4EoUqKfeGOGGi1XbXq-cas01.example.org

このエラーが出ます:

java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found
org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:341)
org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:305)
org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:50)
org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:207)

だから私はグーグルでこのことを試してみましたが、それでも失敗しました:

最初にこのコマンドを実行すると成功しました:

keytool -genkey -alias localhost -keyalg RSA -keystore C:\Users\User\Documents\keystore.jks -keysize 2048
keytool -certreq -alias localhost -keystore C:\Users\User\Documents\keystore.jks -file C:\Users\User\Documents\localhost.csr

jksファイルをJavaにインポートする

keytool -import -trustcacerts -alias localhost -keystore "C:/Program Files/Java/jdk1.7.0/bin/jre/lib/security/cacerts" -file "D:\apache tomcat 6\bin\keystore.jks"

しかし、エラーが出ます:

keytool error: java.lang.Exception: Input not an X.509 certificate

また、x509ファイルを生成してみてください

openssl x509 -in "C:\Users\User\Documents\localhost.csr" -out "C:\Users\User\Documents\localhost.der" -outform DER

しかし、このエラーが出ます:

unable to load certificate
24516:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_li
b.c:696:Expecting: TRUSTED CERTIFICATE

私が試すことができる解決策があればアドバイスをお願いします。

PS:Windows 8 64ビットでTomcat 6を使用しています。(そのため、他の場所で使用すると機能しないため、常にドキュメントフォルダーを使用します)

4

2 に答える 2

6

こんにちは、私はついにこれを自分で解決します...

多分他の誰かがこれを必要とする..

  1. jksファイルをエクスポートして、httpsでアプリケーションを実行します。
  2. ブラウザで証明書を表示します。
  3. エクスポートして.cerファイルに保存します
  4. java keytool でインポートします。

これはコマンドです:

keytool -import -trustcacerts -alias localhost -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file "D:/apache tomcat 6/bin/daniel2.cer"
于 2013-03-08T03:06:18.377 に答える
2

私は同じ問題を抱えていて、あなたの手順に従って解決しましたが、もう1つの手順で解決しました。コマンドの後

keytool -genkey -alias localhost -keyalg RSA -keystore C:\Users\User\Documents\keystore.jks -keysize 2048

それはあなたの姓と名を尋ねます。姓名はサーバーのホスト名である必要があり、IP アドレスにすることはできません。本名と姓を入力しましたが、間違っていました。

于 2013-10-26T14:23:51.297 に答える