Android 7 đã giới thiệu một số thay đổi đối với cách xử lý chứng chỉ ( http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html ) và bằng cách nào đó, tôi không thể làm cho proxy Charles của mình hoạt động được nữa.
Network_security_config.xml của tôi:
<?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>
Tôi đang chạy ở chế độ gỡ lỗi. Nhưng không có vấn đề gì, tôi nhận được javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
.
Không cần phải nói, tôi đã cài đặt một pfx
chứng chỉ từ Settings -> Security -> Install from storage
. Chứng chỉ hiển thị trong User Credentials
nhưng không hiển thị trong Trusted credentials -> User
. Trên thiết bị kẹo mút của tôi, các chứng chỉ được liệt kê ở đó.
Tôi đang sử dụng okhttp3 làm thư viện HTTP.
Bất kỳ ý tưởng những gì tôi đang làm sai?
Settings -> Security -> Install from storage
user
một cái vào<base-config>
và xem liệu những thay đổi đó có quan trọng không. Không nên, nhưng sẽ chỉ mất một chút thời gian để thử.