安全な Web サイトの証明書が CA によって署名されている場合に true を返す関数が必要です。Android では、自己署名証明書に接続しようとすると、SSLException がスローされます。この場合、それをキャッチして false を返します。コードを確認できます:
public static boolean isValidCertificate(URL url) throws IOException {
HttpsURLConnection con;
try {
con = (HttpsURLConnection) url.openConnection();
con.connect();
con.disconnect();
return true;
} catch (SSLException e) {
return false;
}
}
私の問題は、サイトが利用できない場合に関数が例外をスローすることです。しかし、この場合、Android が同じ SSLException をスローし、同じメッセージ「信頼できるサーバー証明書がありません」をスローすることがわかりました。
証明書が有効かどうかに関係なく、サーバーがオンラインかどうかを知る方法はありますか?
ありがとう!