Android中的自签名证书

时间:2015-08-22 11:33:38

标签: android certificate ssl-certificate self-signed httpsurlconnection

我可以使用自签名证书,我使用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)

1 个答案:

答案 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);
    }
};