如何在Android中安全地自定义SSL HostNameVerifier?

时间:2019-01-28 21:28:02

标签: android ssl android-networking

我有一个特殊的用例,在客户端和远程服务器之间需要一个中间主机。我已经设置了一个中间主机@ 10.1.10.15,以将流量转发到我的远程服务器或从我的远程服务器转发流量。

因此,在我的Android应用中,我将根据以下网址发送HTTP请求:

https://10.1.10.15/...

中间主机将显示从实际远程服务器获得的证书,然后HostnameVerifier将起作用并拒绝该请求,因为10.1.10.15与远程服务器上证书的CN不匹配。

我当然可以自定义ssl HostnameVerifier,以便它可以查看主机名是否是IP地址@ 10.1.10.15:

protected static final HostnameVerifier ALWAYS_VERIFY = new HostnameVerifier() {
    @Override
    public boolean verify(String hostname, SSLSession sslSession) {
        return hostname.toLowerCase().equals(@"10.1.10.15");
    }
};

但是我想这样做会引起一些安全方面的担忧。

我的问题是:如何安全地这样做?

0 个答案:

没有答案