android - javax.net.ssl.SSLPeerUnverifiedException : Hostname 192. 168.1.2 未验证

标签 android https hostname

我目前正在学习 Android。对于一项作业,我需要创建一个应用程序,使用自签名证书和 xampp 服务器通过 https 请求 json。

我已经使用apache的工具makecert创建了证书,添加到android并设置它,以便它能够识别,但是我不断收到这个恼人的错误

com.android.volley.NoConnectionError: javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.1.2 not verified:
                                                                             certificate: sha1/g6vc6lpQuz/43pvUpMYogNNiU2o=
                                                                             DN: CN=192.168.1.2/*,OU=Adi,O=Adi,L=Oradea,ST=Bihor,C=RO
                                                                             subjectAltNames: []

我已经成功识别了这段代码

            private HostnameVerifier getHostnameVerifier() {
            return new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    //return true;
                    HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
                    return hv.verify("192.168.1.2/*", session);
                }
            };
        }

但我对如何修复它感到困惑。我在这里查看了其他线程,将其设置为始终返回 true 的解决方案确实有效,但实际上并 Not Acceptable 。

我还尝试使用 CN 192.168.1.2/* 创建证书,因为我使用 xampps htdocs 文件夹中的多个 json 文件,但仍然没有任何结果

我还尝试使用 java keytool 创建配对 key 并将文件导出为 crt 和 key 格式,但这导致 apache 在启动时崩溃

编辑:我注意到的一件事是,无论我在证书中添加什么 CN,它总是将主机名读取为 192.168.1.2

最佳答案

检查您的证书是否包含subjectAltName。 如果没有,您必须将您的 IP 附加到 openssl.cnf 文件中的 subjectAltName。 检查this链接以获取更多信息。

该示例将 DNS 添加为 subjectAltName,您可以将您的 IP 添加为

subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.1
IP.2 = 192.168.1.2

关于android - javax.net.ssl.SSLPeerUnverifiedException : Hostname 192. 168.1.2 未验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47742763/

相关文章:

android - 更新Android Studio插件MultipleCompilationErrorsException启动失败后,React Native Android获取错误

android - 收到登录尝试的结果时,FirebaseAuthUI 使应用程序崩溃

java - GIT 客户端如何处理存储库的错误 SSL 设置?

linux - 使用 mod_rewrite 在某些页面上从强制 SSL 切换回来时出现问题

android - 如何从 IP 地址解析网络主机名

android - android导航图中全局 Action 和目的地特定 Action 之间的区别?

java - 截图并保存android

PHP SoapClient 无法处理重定向到 https

linux - 如何使用 powershell 将 IP 地址解析为 Linux 主机名

powershell - 在Powershell中通过IP(不是主机名)重命名计算机