小编VIS*_*ERI的帖子

在带有自签名证书的 Android 9 中得到 SSLPeerUnverifiedException 主机名 196.1X.3X.X2 未验证错误,但适用于所有其他版本

当使用自签名证书与 REST API 建立 Https 连接时,我在 Android 9 中收到错误 javax.net.ssl.SSLPeerUnverifiedException: Hostname 196.1X.3X.X2 未验证。但它适用于Android(Pie)之前的Android版本。我把主机名是正确的。该怎么办 ?提前致谢。

我的代码如下。

public static String getResponse(String url) { 
    URL updateURL  ; 
   HttpsURLConnection  connection = null; 
    try { 
        HostnameVerifier hostnameVerifier = ( hostname, session ) ->{
            HostnameVerifier hv =
                    HttpsURLConnection.getDefaultHostnameVerifier();
            return hv.verify(Common.getHostnameSubject()+"", session )  ;
        };
        updateURL = new URL(url);
        CertificateFactory cf = CertificateFactory.getInstance("X.509");

        InputStream caInput =  AppApplication.getAppContext().
                getAssets().open(Common.getCertificateAssetName());  
        Certificate ca; 
        ca = cf.generateCertificate(caInput);  
        caInput.close(); 
        String keyStoreType = KeyStore.getDefaultType();
        KeyStore keyStore = KeyStore.getInstance(keyStoreType); 
        keyStore.load(null, null);
        keyStore.setCertificateEntry("ca", ca); 
        String …
Run Code Online (Sandbox Code Playgroud)

ssl android android-9.0-pie self-signed-certificate

4
推荐指数
1
解决办法
2155
查看次数