如果安全网站的证书由 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,并带有相同的消息:“没有受信任的服务器证书”。
无论证书是否有效,有没有办法知道服务器是否在线?
谢谢!