2013年9月3日火曜日

FTPSClient で SSL証明書を無視する設定

ftps で証明書期限切れとかやめて欲しいですが、そんなサイトもあるんですね。。。
ある日突然こんな感じのエラーが発生しました。
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Sun Oct 04 11:22:12 JST 1903
Https では証明書を無視出来る設定があったのを最近調べたところだったので、ftpsでもできないかと思い調べてみました。

結果

ftps でもできました。

やりかた

証明書を無視するTrustManagerを作ってFTPSClientに設定してやればOKです。

全てを無視する TrustManager を作ります。
static final TrustManager IGNORE_ALL = new X509TrustManager() {
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }

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

        }

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

        }
    };
そして、セット
FTPSClient ftpsclient = new FTPSClient();
ftpsclient.setTrustManager(IGNORE_ALL);
あとはいつもどおりでOKです。証明書がダメでも無視して接続してくれます。
yeah!

参考にさせていただきました
commons-http-clientでSSLの証明書を無視する設定 - 高温処理済みコースケ

Written with StackEdit.
  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly