2

对于一个项目,我想测试是否有人在篡改 SSL 连接。HttpsUrlConnection正在使用SSLContext带有固定证书的证书。

我的问题是:如果我得到一个SSLException,例如有人试图伪造一个错误的证书,有没有办法获得有关该证书的详细信息?

在计算机上,使用浏览器(取决于浏览器和版本)我会收到一个证书警告,并且可以选择查看有关证书的详细信息。

我想知道,是否有任何方法可以使用HttpsUrlConnection或是否有另一种可能性? getServerCertificates()此时将无法正常工作,因为尚未建立连接,而且我看不到其他选项..

4

1 回答 1

1

事实证明,从 Android SDK 22 开始,抛出的异常已经包含有关证书的详细信息。

我可以看到运行 Android 21 的设备会抛出一个IOException(主机名未验证),而 Android 22 会抛出一个SSLPeerUnverifiedException,还提供有关证书的详细信息。

于 2018-03-25T21:38:09.490 回答