1

次のTrustManagerを使用して、Javaアプリケーションのローカルテストサーバーから自己署名証明書を受け入れます。

public class CertificateAcceptor {

    private TrustManager[] createTrustManager() {
        TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

            public X509Certificate[] getAcceptedIssuers() {
                return null;
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                // leave blank to trust every client
            }

            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                // leave blank to trust every client
            }
        }};
        return trustAllCerts;
    }

私の知る限り、これはすべての証明書のみを受け入れるため、セキュリティ上の懸念があります。だから私は、ポート9443のローカルホストから来ている証明書だけを受け入れる方法があるかどうか自問していますか?

4

1 に答える 1

4

これらが単なる自己署名証明書ではなく自己署名証明書であると仮定すると、回避策を作成して証明書を持つ利点を失う代わりに、独自の認証局を作成して、有効な署名済み証明書を取得できるようにする方がおそらく理にかなっています .

独自の CA を作成することにより、独自の証明書に署名し、CA 証明書を Java キーストアにインポートするだけです。そうすれば、自己署名証明書の問題はなくなります。さらに、証明書を信頼できるという追加の利点もあります (証明書キーを十分に管理していると仮定します)。

自分自身の CA になることは、実際には、思っているよりもはるかに簡単です。少なくとも私はそうでした。

これは、いくつかのステップバイステップの手順へのリンクです。 http://sandbox.rulemaker.net/ngps/m2/howto.ca.html

于 2011-10-11T21:48:06.990 に答える