zoukankan      html  css  js  c++  java
  • [Java] 绕过证书验证调 HTTPS 接口时报 “SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”的解决办法

    作者: zyl910

    一、缘由

    最近有在对接一个无证书的HTTPS接口时,总是收到“SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”异常。
    通过浏览器、telnet测试了接口地址,确认了TCP层是通的。看来只是HTTPS层没通。
    可是试验了好几个网上找到的“绕过证书验证调HTTPS接口”的办法,均也报这个错误,无法调通接口。

    后来问了很多人,才终于找到处理办法。便将经验分享给大家。

    二、处理办法

    打开 JDK 目录下的 jrelibsecurityjava.security 文件。例如 C:Javajdk1.7.0_45jrelibsecurityjava.security

    在文件中找到 jdk.certpath.disabledAlgorithmsjdk.tls.disabledAlgorithms 这两个参数。例如——

    jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, 
        RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224
    jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, 
        EC keySize < 224, DES40_CBC, RC4_40
    

    然后将这2个参数改为以下值,并保存。

    jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
    jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 268
    

    这样便能调用了。

    参考文献

  • 相关阅读:
    A:hover,A:visited 和A:active的区别
    什么是UrlEncode
    ERP系统BOM详细解析(一)
    ERP术语 [转]
    ERP理论的形成
    MRP的計算步驟
    ERP系统模块完全解析──物料编码分章(一)
    Transact SQL 常用语句以及函数
    SQL 2000中的触发器使用
    修改docker0默认IP地址
  • 原文地址:https://www.cnblogs.com/zyl910/p/java_https_SSLHandshakeException.html
Copyright © 2011-2022 走看看