javax.net.ssl.SSLPeerUnverifiedException:主机名 192.168.1.2 未验证
javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.1.2 not verified
我目前正在学习 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);
}
};
}
但我不知道如何修复它。我在这里查看了其他线程,将其设置为始终 return true 的解决方案确实有效,但并不是真正可以接受的。
我还尝试使用 CN 192.168.1.2/*
创建证书,因为我正在使用 xampps htdocs 文件夹中的多个 json 文件,但仍然没有任何内容
我还尝试使用 java keytool 创建配对密钥并将文件导出为 crt 和密钥格式,但它导致 apache 在启动时崩溃
编辑:我注意到的一件事是,无论我在证书中添加什么 CN,它总是将主机名读取为 192.168.1.2
检查您的证书是否包含 subjectAltName。
如果没有,您必须将您的 IP 附加到 openssl.cnf 文件中的 subjectAltName。
查看 this link 了解更多信息。
该示例将 DNS 添加为 subjectAltName,您可以将 IP 添加为
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.1
IP.2 = 192.168.1.2
我目前正在学习 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);
}
};
}
但我不知道如何修复它。我在这里查看了其他线程,将其设置为始终 return true 的解决方案确实有效,但并不是真正可以接受的。
我还尝试使用 CN 192.168.1.2/*
创建证书,因为我正在使用 xampps htdocs 文件夹中的多个 json 文件,但仍然没有任何内容
我还尝试使用 java keytool 创建配对密钥并将文件导出为 crt 和密钥格式,但它导致 apache 在启动时崩溃
编辑:我注意到的一件事是,无论我在证书中添加什么 CN,它总是将主机名读取为 192.168.1.2
检查您的证书是否包含 subjectAltName。 如果没有,您必须将您的 IP 附加到 openssl.cnf 文件中的 subjectAltName。 查看 this link 了解更多信息。
该示例将 DNS 添加为 subjectAltName,您可以将 IP 添加为
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.1
IP.2 = 192.168.1.2