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

sslHandShakeException:没有可用的身份验证方案

糜雪峰
2023-03-14
    null

原因:javax.net.ssl.sslhandShakeException:在java.base/sun.security.ssl.alert.createsslException(Alert.java:128)在java.base/sun.security.ssl.alert.createsslException(Alert.java:117)在java.base/sun.security.ssl.transportContext.fatal(transportContext.fatal(TransportContext.java.base/sun.icateMessage$t13CertificateProducer.onProduceCertificat(CertificateMessage.java:945)在java.base/sun.security.ssl.CertificateMessage.java:934)在java.base/sun.security.ssl.CertificateMessage$t13CertificateProducer.Produce(CertificateMessage.java:934)在java.base/sun.security.sslhandShake.Produce(java.base/sun.security.ssl.cl在java.base/sun.security.ssl.clienthello$clienthello.consumer.consumer(clienthello.java:849)在java.base/sun.security.ssl.clienthello$clienthello.java:810)在java.base/sun.security.ssl.sslhandshake.consumer(clienthello.java:810)在java.base/sun.security.sslhandshake.consumer(在java.base/java.security.accessController.doprivileged(本机方法)在java.base/sun.security.ssl.sslengineimpl$delegatedtask.run(sslengineimpl.java:999)在org.webpieces.ssl.impl.asyncsslengine2impl.createrunnable(asyncsslengine2impl.java:94)...省略了12个常见框架

我应该归档另一个jdk bug,它仍然不能工作,或者任何人有任何想法?

已解决/相关的jdk bug:https://bugs.openjdk.java.net/browse/jdk-8211426

注意,由于某种原因,这修复了System.SetProperty(“jdk.tls.server.protocols”,“TLSv1.2”);

嗯,有人知道如何生成适用于TLSV1.2和TLSV1.3的自签名证书吗?

共有1个答案

爱繁
2023-03-14

假设这是相关的问题,而不是围绕TLS1.3的另一个问题。

您的证书使用的是DSA算法,TLS1.3中根本不支持该算法,该算法不久前已被弃用,转而支持RSA。请确保改为创建RSA证书。

javakeytool的较旧版本似乎在默认情况下创建了DSA证书...不幸的违约。可以使用此命令验证证书类型。

OpenSSL x509-in certificate.crt-text

Certificate:
    ...
    Signature Algorithm: dsa_with_SHA256
        ...
        Subject Public Key Info:
            Public Key Algorithm: dsaEncryption
 类似资料:
  • 我试图按照API密钥身份验证代码从这个答案:https://stackoverflow.com/a/48448901 我创建了我的过滤器类: 然后我实现了我的安全配置: 当我用头作为请求的一部分对应用程序进行外部调用时,我得到一个403禁止响应。我可以看到过滤器从头中拉出键。这部分正在工作。 但是,不会调用authenticate()方法来检查头是否有效。我不确定我错过了什么,代码在我看来是一样的

  • 是否可以使用Kerberos但不使用JAAS来验证用户/密码?

  • 我在REST api中使用JWT承载身份验证方案。为了在成功身份验证后将jwt令牌返回给客户端,目前我在正文中使用访问令牌响应,如中所述https://www.rfc-editor.org/rfc/rfc6750#page-10 但是也需要在其他HTTP请求中返回令牌,例如已经存在正文的注册。因此,正在考虑为其使用“身份验证信息”标头。但是承载方案没有在任何地方指定“身份验证信息”标头。我应该使用

  • 我目前正在为Spring Boot网站编写一个评论系统,它将基于一个简单的REST API。 为了让人们删除或更新他们之前发布的评论,我想在Cookie中存储一个唯一的令牌来记住/识别他们。用户不需要注册以便发表评论。当用户删除cookie或cookie过期时,将无法取回删除/修改注释的权限。 当然,我自己使用过滤器来实现这样的功能是可能的,但是我想知道在Spring中是否有一种标准的方法(可能是

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • DatabaseError:ORA-28040:没有匹配的身份验证协议