宣言型ネットワーク セキュリティ構成は、Android 7 (API 24) で追加されました。その前に、プログラムでそれを行う必要があります。残念ながら、それは簡単ではありません。手順は次のとおりです。
- 証明書を
KeyStore
- 作成する
X509TrustManager
- 作成する
SSLSocketFactory
- 構築する
OkHttpClient
Retrofit
ビルダーでクライアントを使用する
これを説明するOkHttp レシピがあります。
はるかに単純な API を備えたOkHttp 拡張もあるようです。
val certificate = """-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE
""".decodeCertificatePem()
val certificates: HandshakeCertificates = HandshakeCertificates.Builder()
.addTrustedCertificate(certificate)
.addPlatformTrustedCertificates()
.build()
val client = OkHttpClient.Builder()
.sslSocketFactory(certificates.sslSocketFactory(), certificates.trustManager)
.build()
Retrofit.Builder()
.client(client)
...
.build()
.create(MyWebService::class.java)
OkHttp クライアントを構築するJavaの同様のサンプル