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();
の前の行にいれてください。