OkHttp如何使用证书固定来处理不匹配的域?

问题描述

假设我固定了特定域的证书:

CertificatePinner certPinner = new CertificatePinner.Builder()
    .add("*.domain1.com",CertificatePinner.pin(...))
    .build()
                
OkHttpClient client = new OkHttpClient.Builder()
    .certificatePinner(certPinner)
    .build

OkHttp如何处理对其他域(例如api.domain2.com)的请求?

  • “没有匹配的证书,没有bueno-> SecurityException”

  • “没有匹配的证书,没有问题++->完成请求”

++,前提是domain2的证书仍由C.A.签署。在操作系统级别的受信任权限列表中列出。

解决方法

  • “没有匹配的证书,没有问题++->完成了请求”

证书固定为仅匹配主机添加了约束。