我正在编写一个程序来模拟SSL套接字上的安全连接。我希望客户端通过接口自行导入不受信任(因此不在其信任库中)的证书。这些证书是自签名的。
到目前为止,我遇到了一堵墙,程序崩溃并报告Received fatal alert: certificate_unknown
由于服务器证书不驻留在客户端信任库中。
我在本地模拟连接。我发现了明确使用信任库管理器来覆盖所有SSL检查的示例,但这对MITM攻击是敞开的。
我需要以某种方式包装信任库管理器实现以使其安全,并确保验证服务器证书。这里的链接提供了一个good example的开放实现,但我不知道如何安全地包装它。
在trustmanager实现的情况下,当它找到不受信任的证书(来自其CertificateException
方法)时仍会触发checkServerTrusted
,我是否必须处理该异常但仍继续执行该程序从那里?我很不确定如何处理这种安全包装。
非常感谢所有人