我可以使用自签名证书,我使用openssl创建。
我在HttpsURLConnection
使用证书时遇到的唯一问题是HostnameVerifier。
如果我提供自己的HostnameVerifier,它总是return true
喜欢:
HostnameVerifier hostnameVerifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
in
urlConnection.setHostnameVerifier(hostnameVerifier);
它有效。
我们有什么方法可以为我们自己的主机提供验证而不是对所有人都是真的吗?
和
HostnameVerifier
是否也适用于本地网络(本地IP)
答案 0 :(得分:1)
假设您的服务器应用程序托管在服务器计算机内,该计算机具有"Issued to"
为"localhost"
的服务器证书。然后,在 verify
方法中,您可以验证"localhost"
。
HostnameVerifier hostnameVerifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
HostnameVerifier hv =
HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("localhost", session);
}
};