我在我的应用程序中实现ssl固定,我使用的是证书层次结构中我的网站的叶节点证书。
val certificatePinner = CertificatePinner.Builder()
.add(
BuildConfig.DOMAIN,
Constants.SHA256_HASH
)
okHttpClientBuilder.certificatePinner(certificatePinner.build())
.build()
这工作完美,直到证书保持不变。但主要问题是保持应用程序与SHA256哈希最新的证书到期每3个月。如果我错过了更新新的SHA256哈希,应用程序停止工作,由于证书不匹配。有什么办法可以避免这种情况。谢谢提前。
2条答案
按热度按时间rdrgkggo1#
使用根证书的SHA散列解决了我的问题,因为它的寿命更长
ykejflvf2#
我不得不处理类似的情况:我不得不实施证书绑定,但我不想将应用发布与证书过期同步。
我实现的解决方案(我知道这是一种妥协)是这样工作的:如果证书应用程序使用仍然有效,则应用程序将应用证书固定。如果证书已过期,则应用程序不使用证书固定。这样,应用程序将在证书过期日期和应用程序更新(使用新证书哈希码)之间"公开,但不使用证书固定"。在此期间,应用程序将公开,但它将继续工作!!
代码:
我认为这是一个更好的解决方案,使用远程配置管理证书SHA,但目前,这是我的解决方案。:D
希望对你有帮助。