2012-03-05 10 views
1

こんにちは私はウェブサーバーとしてtomcat 6を使用しています。私は同じポート上のtomcatに2つのwebbアプリケーションをインストールしています。 App1とApp2と言ってください。 App1は App2に接続します。その後、App2は再びjessionidを使用してApp1に接続します(したがって、app2が送信しているURLはhttp://localhost/App1;jessionid=sessionidOfAp11です) httpである限り、これは完全に正常に動作します。しかし、私がhttpsに移動するとすぐにApp2はApp1に同じURLで接続することができません。 もう1つ興味深い事実は、ブラウザに同じURLを入力するとApp1に接続することです。 私はここに何が起こっているのか迷っていますか?javax.net.ssl.SSLHandshakeExceptionを取得する:sun.security.validator.ValidatorException。 HTTPS上のアプリケーションに接続できませんか?

編集: - ここで私は答えを

Caused by: sun.security.validator.ValidatorException: PKIX path building failed:  sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.validator.PKIXValidator.doBuild(Unknown Source) 
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) 
at sun.security.validator.Validator.validate(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
... 53 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) 
at java.security.cert.CertPathBuilder.build(Unknown Source) 

回答

みんなのおかげを取得し、正確なエラーです。私はまた、http://www.coderanch.com/t/134384/Security/Getting-error-No-subject-alternativeで提案されたものをやらなければならなかった。

+0

「App1はApp2に接続します」とはどういう意味ですか? –

+0

両方のアプリケーションでhttpsを使用していますか?それともApp2だけ? –

+0

基本的には、App1のリンクをクリックするとApp2が呼び出されます。 App2は再びApp1に接続して、apiでいくつかのロジックをチェックします。URLConnection conn = url.openConnection(); –

答えて

1

App1はhttpsを使用してApp2に接続しています。 App2の証明書は、App1がを実行しているVMのトラストストアにある必要があります。

hereを参照して、キーストアに証明書を追加する方法を参照してください。

あなたは、クライアントとサーバが

  • 同じVM
  • 同じマシン
  • に存在する場合に、HTTPSを介して通信するために持っていけない。また、これらのシステムのプロパティ

    -Djavax.net.ssl.trustStore="C:/test/truststore" 
        -Djavax.net.ssl.trustStorePassword="test". 
    

    を使用してトラストストアを設定することができます

  • 私設ネットワーク
+0

Ramesh App2の証明書を追加する必要があります。App1があるVMの信頼ストアにあるはずです –

+0

同じVMの場合は、サーバーのcertsファイルに追加します。 –

+0

<コネクタ ポート= "8443" maxThreadsの= "200" スキーム= "https" を確保= "true" をSSLEnabled = "true" を いるkeystoreFile = "$ {のuser.home} /。ストア" keystorePass = "changeitと" clientAuth = "false" sslProtocol = "TLS" /> –

0

{tomcat_home}/binフォルダ(Windowsの場合はtcnative-1.dll、* nixの場合はtcnative-1.so)からネイティブのtomcatライブラリを削除する必要があるようです。ネイティブライブラリがクラスパスにある場合、TomcatはAPRを使用します。

+0

binフォルダの下にこのようなライブラリはありません –

関連する問題