当前位置: 首页 > 知识库问答 >
问题:

javax.net.ssl.SSLHjava.security.cert.证书不符合算法约束

凌俊材
2023-03-14

我在jetty中使用OpenJDK1.8.0的web服务尝试建立到Microsoft服务器的HTTPS连接,我得到了以下错误:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:747)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
......

信任Microsoft服务器的证书看起来不错:

> < li >公钥:RSA (2048位) < li >签名算法:sha256RSA < li>

签名哈希算法:sha256无算法匹配< code > JRE _ path/lib/security/Java . security disable算法:

jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize

我检查了jetty和微软的TLS密码套件支持,一切正常:

  • TLS1_1: ECDHE-RSA-AES256-SHA
  • TLS1_2: ECDHE-RSA-AES256-SHA384
  • TLS1: ECDHE-RSA-AES256-SHA

我的问题:

  1. 什么导致证书不符合算法约束异常?
  2. 据我所知,OpenJDK支持无限强度的加密,无需额外的策略文件。我遗漏了什么吗?

谢谢!

共有1个答案

苗征
2023-03-14

由签名算法引起的在Windows服务器中使用的证书采用了将来的TLSv1.3标准的算法,所以OpenJDK抛出了这个异常

 类似资料:
  • 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

  • 本书约定 本节描述了本书中使用的各种约定。 排版习惯 等宽字体 用于命令,命令输出和选项 等宽字体 用于代码和文本中的可替换部分 斜体 用于文件和路径名 图标 注意 此图标表示旁边的文本内容需特别注意。 提示 此图标表示旁边的文本描述了一个有用的小技巧。 警告 此图标表示旁边的文本是警告信息。