JavaでSSL証明書のチェックを省略する方法

前回の記事でJoomlaにXMLRPCで記事を登録できるようになりました。
ただ、本番サイトはHTTPSだったので上手く動作しませんでした。
どうも、チェックを弾いてあげるようにしないとダメなようです。

            //証明書情報 全て空を返す
            TrustManager[] tm = { new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
                @Override
                public void checkClientTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
                @Override
                public void checkServerTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
            } };

            SSLContext sslcontext = SSLContext.getInstance("SSL");
            sslcontext.init(null, tm, null);
            HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());

            //ホスト名の検証ルール 何が来てもtrueを返す
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname,
                        SSLSession session) {
                    return true;
                }
            });

これを入れてあげたら、ちゃんと動作しました!
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
の前の行にいれてください。

システム開発

Posted by @erestage