"java.security.cert.CertificateException: Certificates does not conform to algorithm constraints"
"jdk.certpath.disabledAlgorithms=MD2"
MD2被广泛认为是不安全的,因此在Java版本JDK 6U17中被禁用(请参见发行说明http://www.oracle.com/technetwork/Java/javase/6u17-141447.html,“在证书链验证中禁用MD2”),以及JDK 7,正如您在Java.security
中指出的配置。
Verisign使用的是带有MD2withRSAEncryption
签名算法的3类根证书(串行70:BA:E4:1D:10:D9:29:34:B6:38:CA:7B:03:CC:BA:BF
),但不推荐使用它,而是用具有相同密钥和名称的另一个证书替换,但使用算法SHA1withRSAEncryption
签名。但是,有些服务器在SSL握手期间仍然发送旧的MD2签名证书(具有讽刺意味的是,我在VeriSign运行的服务器上遇到了这个问题!)。
您可以通过从服务器获取证书链并检查它来验证情况是否如此:
openssl s_client-showcerts-connect
JDK的最新版本(例如6U21和7的所有发布版本)应通过自动删除具有相同颁发者和公钥作为受信任锚点的证书(默认情况下在cacerts中)来解决此问题。
解决办法是:
>
使用默认信任管理器,或
修改您的自定义信任管理器以直接扩展X509ExtendedTrustManager
(一个简单的更改)。
我在jetty中使用OpenJDK1.8.0的web服务尝试建立到Microsoft服务器的HTTPS连接,我得到了以下错误: 信任Microsoft服务器的证书看起来不错: > < li >公钥:RSA (2048位) < li >签名算法:sha256RSA < li> 签名哈希算法:sha256无算法匹配< code > JRE _ path/lib/security/Java . secu
SCS English Version 子链是MOAC区块链中非常重要的一个模块。其主要目的在于分流母链中的业务逻辑,把一些比较繁琐的业务操作放在子链中执行。 子链由合约节点(Smart Contract Server - SCS)节点组成,必须部署在母链Vnode上。 子链支持分片,每个分片都能独立完成业务逻辑。 子链中的节点随机组合,支持动态增减。 同时,在主链上,我们增加了代理的Vnode节
通过在EVM中执行方法来估算链上执行是需要的gas用量。得到的估算值可能与之后实际发送 交易的gas用量有差异,因为合约的状态可能在两个时刻存在差异。 调用: myContract.methods.myMethod([param1[, param2[, ...]]]).estimateGas(options[, callback]) 参数: options - Object : 选项,包括以下字
我有一个DER格式的证书文件和一个DER格式的密钥文件,密钥是加密的。 我想创建一个包含PEM格式的cert和加密密钥的cer文件,如下所示: 我可以使用以下命令获得PEM格式的证书: 我还可以使用以下命令获取PEM格式的未加密密钥: 这将创建一个以以下开头的文件: -----开始RSA私钥----- 然而,我找不到一个方法让它开始 开始加密私钥 这样我就可以连接两个文件并获得证书。 你知道我能做
我想通过Azure portal(Azure Key Vault)创建一个自签名的CA证书。我不确定如何设置X509扩展基本约束ca:true 一些参考链接:https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps https://www.alvestra
本书约定 本节描述了本书中使用的各种约定。 排版习惯 等宽字体 用于命令,命令输出和选项 等宽字体 用于代码和文本中的可替换部分 斜体 用于文件和路径名 图标 注意 此图标表示旁边的文本内容需特别注意。 提示 此图标表示旁边的文本描述了一个有用的小技巧。 警告 此图标表示旁边的文本是警告信息。