C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: httpsURLConnectionを使用したCRLチェック


(過去ログ 136 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■79894 / inTopicNo.1)  httpsURLConnectionを使用したCRLチェック
  
□投稿者/ 初心者 (56回)-(2016/05/26(Thu) 20:11:59)

分類:[Java] 

java8
現在javaにてhttpsクライアントを開発しています。
httpsURLConnectionを使用して接続しているのですが、イントラ環境でも接続可能にするため
CRLサーバに接続しなくても動作可能にしたいと思っています。
CRLのチェックを無効化する方法はありますでしょうか。
javaコンパネでの回避以外の方法を探しています。
X509CRL等のキーワードで検索してもいまいち分かりません。


引用返信 編集キー/
■79920 / inTopicNo.2)  Re[1]: httpsURLConnectionを使用したCRLチェック
□投稿者/ もりお (10回)-(2016/05/28(Sat) 20:19:56)
No79894 (初心者 さん) に返信

X509TrustManagerを空で実装してSSLContextに設定して
SSLSocketFactoryを作ってhttpsURLConnectionに設定してって感じで行けるんじゃないかと思います。

public static void main(String[] args) throws NoSuchAlgorithmException, IOException, KeyManagementException {
    TrustManager trustManager = new X509TrustManager() {
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[0];
        }

        @Override
        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }

        @Override
        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }
    };

    SSLContext sslContext = SSLContext.getInstance("SSL");
    sslContext.init(new KeyManager[0], new TrustManager[] { trustManager }, new SecureRandom());

    URL url = new URL("https://www.google.co.jp/");
    HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
    httpsURLConnection.setSSLSocketFactory(sslContext.getSocketFactory());

    httpsURLConnection.getHeaderFields().forEach((key, value) -> {
        System.out.printf("%s: %s\n", key, value);
    });
}

引用返信 編集キー/
■79923 / inTopicNo.3)  Re[2]: httpsURLConnectionを使用したCRLチェック
□投稿者/ 初心者 (58回)-(2016/05/28(Sat) 22:28:52)
ご丁寧な回答ありがとうございます!
一旦この方法で試してみたいと思います。
ただ、この場合どのチェックまで無くなるんですかね?
例えば認証局の妥当性チェックすら無くなってしまうのでしょうか…
私の知識が不足している部分もあるのでこちらでも調べてみたいと思います。
引用返信 編集キー/
■79925 / inTopicNo.4)  Re[3]: httpsURLConnectionを使用したCRLチェック
□投稿者/ もりお (11回)-(2016/05/29(Sun) 00:33:24)
No79923 (初心者 さん) に返信
たぶん証明書のチェックは全部なくなります!
CRLのチェックのみを無効化するやり方が見つかるとよいのですけどね。
もしくは、CRL以外のチェックを全部やる方法。私も調べてみようと思います。
引用返信 編集キー/
■79927 / inTopicNo.5)  Re[3]: httpsURLConnectionを使用したCRLチェック
□投稿者/ もりお (12回)-(2016/05/29(Sun) 03:48:19)
No79923 (初心者 さん) に返信

https://support.google.com/a/answer/3011361?hl=ja
| この現象を回避するには、証明書失効リストチェックを無効に
| します。ただし、この方法はセキュリティ上の理由からおすすめ
| できません。いずれにせよ変更する場合は、GADS インストール
| ディレクトリにある config-manager.vmoptions ファイルと syn
| c-cmd.vmoptions ファイルに次の行を追加して、証明書失効リス
| トチェックを無効にします。
|
| -Dcom.sun.net.ssl.checkRevocation=false
| -Dcom.sun.security.enableCRLDP=false

こんなの見つけました。もしかしたら起動コマンドのオプション指定で行けるかもしれません。
引用返信 編集キー/
■79928 / inTopicNo.6)  Re[4]: httpsURLConnectionを使用したCRLチェック
□投稿者/ 初心者 (59回)-(2016/05/29(Sun) 21:09:26)
色々とありがとうございます!

私もコマンドオプションで回避可能な方法が無いかと色々と調べていたところでした。
が、このオプションは知りませんでした…
後はjava標準でこのオプションが指定可能かですね。
試してみる価値はありそうです。
他の方法も調べつつ試してみます。

何から何までありがとうございます!
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -