2012-02-27 8 views
1

私は以下の問題があります:私はVerisign SSL Certを使用し、私のAndroidアプリケーションから私のTomcat 7サーバーに接続しようとします。私の意見では、証明書は正常にiphone、firefoxのブラウザとverisignと他のsslのチェックツールのsslツールのための同じアプリと正常に接続できるようにインストールされています。Android + Verisign SSLバージョン1

しかし、Androidのアプリは言う:java.security.cert.CertificateException:java.security.cert.CertPathValidatorException: Version 1 certs can't be used as intermediate certificates

私は多くの答えに記載さEasySSLSocketFactoryEasyX509TrustManagerとソリューションを実装して、証明書の順序を変更しようとするが、私は例外を解決することができませんでした。バージョン1の証明書は最後の証明書として注文されているので、[0]-my cert[1]-intermediate1, [2]-intermediate2 and finally [3]-the root Version 1があります。私はセキュリティ上の理由からすべての証明書を許可したくありません。なぜこの例外がスローされたのか分かりませんが、どちらかのverisignが間違ったルート証明書を発行しているか、またはアンドロイドがそのトラストストアにルートを実装していないようです。どのようにこれを解決することができますか?任意のお手伝いをしてくれてありがとうございます

答えて

0

Web /アプリケーションサーバーには証明書が1つだけインストールされていることを確認してください。期限切れの証明書をすべて削除します。

2

私はこの正確な問題を抱えており、昨日解決することができました。ルート証明書がバージョン1の証明書であるため、ルート証明書が受け入れられないという点で正しいです。

まず、opensslを使用して証明書チェーンのどの証明書がバージョン1の証明書(エラーの原因)であるかを調べて問題を解決しました。

simonevertsson$ openssl s_client -connect my.secure.site.com:443 

これは証明書チェーンを提供します。例:私は、手動でVeriSign Root Certificate download pageに行き、

--- 
Certificate chain 
0 s:/C=SE/ST=Uppsala/L=Uppsala/O=Example AB/CN=my.secure.site.com 
    i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3 
1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3 
    i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 
2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 
    i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority 
3 s:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority 
    i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority 
--- 

は、私の場合にはクラス3パブリック・プライマリー認証局だったバージョン1の証明書のための.pemファイルをダウンロードしました。

証明書ファイルがダウンロードされたとき、私はちょうどAdding unknown CAsのAndroidデベロッパーガイドに従った。そしてそれと同じように、エラーは消えました。