Android 7 memperkenalkan beberapa perubahan pada cara penanganan sertifikat ( http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html ) dan entah bagaimana saya tidak dapat membuat proxy Charles saya berfungsi lagi.
Network_security_config.xml saya:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Saya menjalankan dalam mode debug. Tapi tidak peduli apa, aku mengerti javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
.
Tak perlu dikatakan, saya memang memasang pfx
sertifikat dari Settings -> Security -> Install from storage
. Sertifikat diperlihatkan User Credentials
tetapi tidak dalam Trusted credentials -> User
. Di perangkat lollipop saya, sertifikatnya terdaftar di sana.
Saya menggunakan okhttp3 sebagai pustaka HTTP.
Tahu apa yang saya lakukan salah?
Settings -> Security -> Install from storage
user
ke dalam<base-config>
dan lihat apakah perubahan itu penting. Seharusnya tidak, tetapi hanya perlu beberapa saat untuk mencoba.