美文网首页
忽略https域名校验不通过

忽略https域名校验不通过

作者: 十毛tenmao | 来源:发表于2021-02-02 20:44 被阅读0次

    公司有一些标准的对外https服务,内部调用也需要走https的方式,但是可以用内部IP,这个时候就会遇到证书校验域名不通过的问题,需要忽略。本文分别介绍curl,wget和okhttp中忽略域名校验的方法

    curl

    • 错误内容
    curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
    
    • 忽略方式
      一种是添加临时域名解析缓存的方式,保证对外域名可以直接解析到内网IP--resolve subdomain.example.com:443:10.0.0.100
      另外一种是直接关闭域名校验--insecure
    # 手工指定域名DNS解析结果,比如把subdomain.example.com:443解析到10.0.0.100:443
    curl -v --resolve subdomain.example.com:443:10.0.0.100 https://subdomain.example.com/
    
    # 禁止domain校验
    curl -v --insecure https://subdomain.example.com/
    

    wget

    增加参数--no-check-certificate

    wget 'https://subdomain.example.com/goods.json' --no-check-certificate
    

    OkHttp

    • 错误内容
    javax.net.ssl.SSLPeerUnverifiedException: Hostname 10.0.0.100 not verified
    
    • 忽略方式:自定义HostnameVerifier
    OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
            .writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
            .connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
            //设置自定义的hostname校验类,默认返回true
            .hostnameVerifier((hostname, session) -> true)
            .build();
    

    参考

    相关文章

      网友评论

          本文标题:忽略https域名校验不通过

          本文链接:https://www.haomeiwen.com/subject/txhutltx.html