使用Android上的OkHttp证书固定处理站点证书到期

时间:2016-11-18 19:06:38

标签: android okhttp3 pinning

我有一个应用程序,其中包含一个用OkHttp3固定的站点证书哈希,类似于提到的方法here

网站证书即将到期但我意识到,一旦我在网站上切换更新,我就需要能够支持新的网站证书,并且让当前版本仍然可用。有没有办法为同一个站点固定2个证书,以便无缝地支持两个证书(即当前一个证书到期,一个不再有效以及新版本更新时)?

TIA

1 个答案:

答案 0 :(得分:1)

这是CertificatePinner的记录行为。所以只需添加当前和旧证书的引脚。

http://square.github.io/okhttp/3.x/okhttp/okhttp3/CertificatePinner.html#check-java.lang.String-java.util.List-

  

确认至少有一个针对主机名固定的证书是   在peerCertificates中。如果没有固定证书则不执行任何操作   对于主机名。 OkHttp在成功进行TLS握手后调用此方法,但是   在使用连接之前。

n.b。由于您的证书可能会在旧客户端更新之前到期,因此通常还建议您使用您使用的CA,这很可能在新旧证书中保持一致。这将确保即使您当前和下一个证书过期或被撤销,您也可以使用生成的新证书和较旧的客户端进行身份验证。

https://community.letsencrypt.org/t/hpkp-best-practices-if-you-choose-to-implement/4625