草庐IT

java - Groovy SSL 签名验证 : signature length not correct?

我正在尝试使用提供的公钥和签名来验证用私钥签名的消息。像charm一样工作的命令行是catcall.blah|openssldgst-sha256-verifypublic-key.pem-signaturesignature.sigVerifiedOK已使用命令从X509证书创建public-key.pemopensslx509-pubkey-noout-inx509key.cer>public-key.pem现在我试图在groovy中模仿它,这是我的代码staticvoidmain(String[]args){/*VerifyaDSAsignature*/if(args.lengt

java - 如何在不使用 Spring 引导和使用单独的 Apache tomcat 服务器的情况下在 Spring WS 中配置双向 SSL 连接?

我需要以双向SSL连接安全机制向服务器发送soap请求消息,还需要处理来自服务器的Soap响应。我正在使用SpringMVC以及完全使用配置的Springws注释并需要以两种方式SSL连接进行配置,以便将soap请求发送到服务器。如何在我的SpringMVCWeb服务应用程序中使用两种方式的SSL连接,以便通过SSL将我的soap消息发送到服务器?。 最佳答案 我可以指导您完成所有必需的步骤,但仍有不足之处。请查看我的回答,以便我可以为您提供正确的配置链接双向SSL是一种带有客户端证书身份验证的TLS连接。它与签署soap请求不同(

java - 如何将 Jetty 与 Let's Encrypt 证书一起使用?

我想使用来自Let'sEncrypt的证书有大量的Jetty服务器。其中一个问题是Let'sEncrypt的证书有一个lifetimeof90days.为了处理这个问题,Jetty服务器或一些额外的代码必须经常更新证书。Jetty可以处理这个self吗?如果是,我该如何启用它?如果我需要使用Javaclient自行实现它那么如何在不重启Jetty服务器的情况下通过JettyAPI动态替换证书?编辑:一些相关的和部分有用的链接:settingsslkeystoreatruntimeinJettyChangingJettySSLservercertificateon-the-fly

java - 无法在 Java : "pathLenConstraint violated - this cert must be the last cert in the certification path" 中对 SSL 站点进行身份验证

我正在尝试使用Java代码从安全(即SSL)网页中读取内容。我正在尝试同时使用URLConnection(java.net)和Apache的HTTPClient。在这两种情况下,当我发出请求时,我都会收到此异常:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXpathvalidationfailed:java.security.cert.CertPathValidatorException:basicconstraintscheckfailed:pathLenConstr

Java 证书异常 "No subject alternative names matching IP address ... found"

我正在尝试在我的网络服务器中实现一个自签名证书,并且它已经可以与firefox和chrome一起工作(无论是从服务器本身还是从远程机器)......但是我无法让它与java一起工作.我已经创建了一个包含我的证书的keystore文件,但每次我尝试连接到服务器时,它都会给我一个SSLHandshakeException:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:Nosubject找到与IP地址192.168.178.71匹配的替代名称我用于此测试的代码是:publicstatic

SSL和Kerberos身份验证的区别?

SSL(SecureSocketsLayer,安全套接层)和Kerberos(一种网络认证协议)都是用于提供身份验证和加密通信的技术。它们有以下主要区别:目的:SSL主要用于保护基于Web的应用的通信安全。而Kerberos是一种身份验证协议,主要用于保护跨资源和跨操作系统的通信安全。认证:SSL使用非对称加密技术,由客户端生成一对公钥和私钥,并将公钥发送给服务器。服务器将公钥存储在服务器上,然后使用此公钥加密服务器产生的随机密钥,并将其发送回客户端。客户端使用私钥解密该密钥,以确认服务器的身份。Kerberos是一种基于对称加密的身份验证协议。在Kerberos中,所有通信都以共享密钥加密。

java - SSLHandShakeException 没有合适的协议(protocol)

我最近在我的网站上添加了SSL,可以通过https访问它。现在,当我的Java应用程序尝试向我的网站发出请求并使用缓冲读取器从中读取时,它会生成此堆栈跟踪我没有使用自签名证书,该证书来自Namecheap,他使用COMODOSSL作为CA来签署我的证书。我正在使用Java8javax.net.ssl.SSLHandshakeException:Noappropriateprotocol(protocolisdisabledorciphersuitesareinappropriate)atsun.security.ssl.Handshaker.activate(Handshaker.ja

java - 如何在 Java SSL 客户端应用程序中支持多个信任库

在我们的java应用程序中,我们需要使用https协议(protocol)与SSL上的服务器列表进行通信。要通信的服务器列表将在运行时更改。最初我们没有任何服务器的证书。在运行时,我们将获取新服务器的证书并将公钥证书添加到信任库中;并且与服务器的任何新https连接都应使用更新的信任库。我们认为我们应该使用两个信任库,一个是cacerts(默认为jre附带的一个),另一个包含我们在列表中动态添加/删除的服务器证书。这将确保我们不会修改java的默认TrustStore(cacerts)。请建议如何实现这一点。此外,是否有任何方法可以仅对java中的特定线程使用特定的信任库,以便其他(现

未找到 SSL 证书的 Java HttpClient 错误,在代码中使用证书作为字符串?

在尝试使用HttpClient调用使用自签名证书的https站点时,我有点困惑。我有如下代码,它使我能够进行调用,但随后出现类似javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:Notrustedcertificatefound的错误我已经从我的Web浏览器下载了证书,我知道我可以将它导入keystore,但我宁愿将它放入代码中并以这种方式使用它,有没有办法做到这一点?HttpClientclient=newHttpClient();EasySSLProtocolSocketFac

java - 将外部服务器的自签名证书添加到我的 Tomcat 的受信任证书中

我的Tomcat需要使用SSL(TLS)连接到另一个Web服务器(在https://foreign.example.com)。foreign.example.com有一个我信任的自签名证书。当然,我的Tomcat默认情况下没有-所以我必须告诉它。一种方法是:$JRE/bin/keytool-import-aliasmy-filessl-cert-myselfsigned.cer-keystore$JRE/lib/security/cacerts这有效:我的Tomcat允许SSL连接。但是,我不喜欢这样做:它将证书导入到我安装的Java的受信任key中。我不想说:“在我的机器上运行Jav