对于一个项目,我想测试是否有人在篡改SSL连接。HttpsUrlConnection正在使用带有固定证书的SSLContext。
我的问题是:如果我得到了SSLException,例如有人试图伪造错误的证书,有没有办法获得该证书的详细信息?
在计算机上,使用浏览器(取决于浏览器和版本),我将收到证书警告,并可以选择查看有关证书的详细信息。
我想知道,是否有任何使用HttpsUrlConnection的方法,或者是否还有另一种可能性?getServerCertificates()此时将无法工作,因为连接尚未建立,而且我看不到其他选项。
发布于 2018-03-25 21:38:09
原来,从Android 22开始,抛出的异常已经包含了证书的详细信息。
我可以看到运行Android21的设备会抛出一个IOException (主机名未被验证),而Android22则会抛出一个SSLPeerUnverifiedException,并提供证书的详细信息。
https://stackoverflow.com/questions/47459960
复制相似问题