Tag: ssl

Java版本“1.7.0_79”的SSL握手失败

我正在使用Apache HttpClient与Java中的一个主机进行通信,它正在抛出handshake_failure 。 完整的痕迹是 SecureRandom的触发播种完成播种的SecureRandom忽略不可用的加密套件:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的加密套件:TLS_DHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的加密套件:TLS_ECDH_RSA_WITH_AES_256_CBC_SHA忽略不支持的加密算法套件:TLS_DHE_DSS_WITH_AES_128_CBC_SHA256忽略不支持的加密算法套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA256忽略不支持的加密算法套件:TLS_DHE_RSA_WITH_AES_128_CBC_SHA256忽略不支持的加密算法套件:TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256忽略不支持的密码套件:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256忽略不支持的加密算法套件:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384忽略不支持的加密算法套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384忽略不支持的加密算法套件:TLS_RSA_WITH_AES_256_CBC_SHA256忽略不可用的加密套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA忽略不支持的加密算法套件:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256忽略不支持 密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384忽略不可用的加密套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA忽略不支持的加密算法套件:TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384忽略不支持的加密算法套件:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256忽略不支持的加密算法套件:TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256忽略不可用的加密套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA忽略不可用的加密套件:TLS_RSA_WITH_AES_256_CBC_SHA忽略不支持的加密算法套件:TLS_RSA_WITH_AES_128_CBC_SHA256允许不安全的重新协商: false允许旧版hello消息:true是初始握手:true是安全重新协商:false %%没有高速缓存客户机会话* ClientHello,TLSv1 RandomCookie:GMT:1477593324 bytes = {140,171,214,217,33,165,60,228 ,102,207,88,112,29,40,198,242,159,61,172,89,116,98,7,195,182,144,159,226}会话ID:{}密码套件:[ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS _RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5,TLS_EMPTY_RENEGOTIATION_INFO_SCSV]压缩方法:{0}扩展elliptic_curves,曲线名称: {secp256r1,sect163k1,sect163r2,secp192r1,secp224r1,sect233k1,sect233r1,sect283k1,sect283r1,secp384r1,sect409k1,sect409r1,secp521r1,sect571k1,sect571r1,secp160k1,secp160r1,secp160r2,sect163r1,secp192k1,sect193r1,sect193r2,secp224k1,sect239k1,secp256k1扩展ec_point_for 垫,格式:[未压缩]扩展server_name,server_name:[host_name:integration.swiggy.com] [写入] MD5和SHA1哈希:len = 180 0000:01 00 00 B0 03 01 58 12 49 EC 8C AB D6 D9 21 A5 ……十一….!。 0010:3C E4 66 CF 58 70 1D 28 C6 F2 9F 3D AC 59 74 62 […]

常见的Java套接字中没有密码套件

我最近一直在为消息传递系统使用SSL套接字。 我终于开始使用CA颁发的证书了。 我将它导入我的密钥库,设置了密钥库属性,并启动了我的客户端,但是当我尝试发送数据时,我一直收到握手exception。 我启用了调试模式,我发现它是由于no cipher suites supported 。 有什么想法吗? 如果它有帮助,它还说它忽略了TLSV1和TLSV1.1的10个密码套件。 我还安装了无限强度加密策略。 客户代码 public static void Message(String args){ System.setProperty(“https.protocols”, “TLSv1”); System.setProperty(“javax.net.debug”, “all”); try { String host = “localhost”; int port = 3498; InetAddress address = InetAddress.getByName(host); socket = (SSLSocket)SSLSocketFactory.getDefault().createSocket(address, port); //Send the message to the server OutputStream os = socket.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter […]

证书签名validation失败

我的网站托管在亚马逊上。 它建立在java 1.4.2_13的微软版本上。 我注意到电子邮件没有出去。 我没有对代码进行任何更改。 我在亚马逊的网站上找到了这个文件,并按照他们的指示找出我们的java环境没有通过测试。 所以,我导入了新的ssl根证书。 我可以validation它是否在密钥库中,但是当我运行其shaTest并且仍然没有发送电子邮件时,我收到以下错误消息。 任何帮助表示赞赏。 谢谢! Exception in thread “main” javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate signature validation failed at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.b(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect […]

信任所有证书的Mule HTTPS连接器

我正在为Mule ESB应用程序编写集成测试。 Mule应用程序通过HTTPS连接到第三方API。 当我尝试针对第三方测试API端点运行我的应用程序时,一切正常,我不必将任何客户端特定的SSL配置添加到HTTPS连接器。 我相信这是因为他们的服务器具有CA签名证书,因此他们可以立即受到信任,例如像这样的HTTP连接器 将开箱即用。 在编写集成测试时,我会存根(或者如果您愿意,可以模拟)第三方API。 但是,为了使SSL工作,我必须为嵌入式HTTPS服务器生成密钥库,并通过添加来修改客户端HTTPS连接器 正如互联网上所提到的那样。 我可以在一个单独的XML文件中定义测试HTTPS连接器,并将其加载到FunctionalTestCase.getConfigResources()方法中。 然而,这并不理想:我真正想要的是使HTTPS连接器(客户端)信任所有内容的方法 – 但仅在运行集成测试时 – 即在执行Maven构建时。 这必须以编程方式发生,以便保持Mule应用程序代码不变。 我试图将以下代码添加到@BeforeClass注释方法中 http://www.rgagnon.com/javadetails/java-fix-certificate-problem-in-HTTPS.html 但没有运气。 运行集成测试时,我仍然遇到以下exception Exception stack is: 1. unable to find valid certification path to requested target (sun.security.provider.certpath.SunCertPathBuilderException) sun.security.provider.certpath.SunCertPathBuilder:196 (null) 2. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (sun.security.validator.ValidatorException) sun.security.validator.PKIXValidator:385 (null) 3. […]

javax.net.ssl.SSLHandshakeException:在applet中握手期间远程主机关闭连接

在我的Web应用程序中,我使用的是一个名为jar的applet,这个applet在jre 1.6和1.7之前工作正常。 但是在安全弹出和applet的阻塞错误后,我们不得不购买了一个java代码签名证书。 我已经成功签署了这个applet jar,这个applet在HTTP协议上没有任何问题。 如果我在HTTPS上打开此applet,它会开始提供SSLHandshakeException的exception。 我已经尝试了所有可能的解决方案来运行它但它失败了。 *Java Plug-in 11.25.2.18 Using JRE version 1.8.0_25-b18 Java HotSpot(TM) Client VM User home directory = C:\Users\home —————————————————- c: clear console window f: finalize objects on finalization queue g: garbage collect h: display this help message l: dump classloader list m: print memory usage o: trigger logging q: hide […]

配置Tomcat以使用Windows证书存储区进行SSL

我已经部署了许多SSL配置,包括Tomcat(cacerts + keytool)和IIS(Windows Certificate Store + netsh http sslcert),所以我熟悉这些程序。 有没有人想出办法将Tomcat的SSL连接器指向Windowsapp store(即配置,扩展,插件等)? 只是希望将SSL部署的管理集中到一个商店,而不是拥有多个商店。

连接到URL时出错 – PKIX路径构建失败

我正在尝试连接到网页以收集信息,我正在使用jsoup来解析HTML。 但是,每当我尝试连接到URL以下载源时,我都会收到有关PKIX构建路径的错误。 我环顾四周,我发现的所有内容都说将我的网站的CA根证书添加到我的信任库,但问题仍然存在(CA根证书已经存在)。 我可以通过Web浏览器连接到网站,但不能通过URL类连接到网站。 这是我能编写的最基本的代码,它会产生错误。 public class URLConnectStart { public static void main(String[] args) { try { URL u = new URL(“https://ntst.umd.edu/soc/”); u.openStream(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 这是错误 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target […]

SSL连接导致javax.net.ssl.SSLException:证书中的主机名不匹配(WSO2 Api Manager / Tomcat)

我目前正在设立一个docker化的WSO Api Manager。 我们的域名获得了通配符证书。 我成功地将其转换为java密钥库并替换了两个jks文件。 当我打开API管理器时,我没有收到ssl警告,浏览器将我的连接标记为安全。 当我尝试登录时出现错误: 在我得到的日志文件中: TID: [-1234] [] [2017-03-24 11:37:55,305] INFO {org.apache.axis2.transport.http.HTTPSender} – Unable to sendViaPost to url[https://localhost:9443/services/AuthenticationAdmin] {org.apache.axis2.transport.http.HTTPSender} javax.net.ssl.SSLException: hostname in certificate didn’t match: != at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:341) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:277) 看起来服务器正在尝试与localhost建立SSL连接。 那么如何将匹配的证书添加到密钥库以允许localhost访问? 非常感谢!

私钥和密钥库中签名证书之间的链接

我正在做jetty SSL configuration 。 我使用keytool创建了CSR,它已经为密钥库添加了一个私钥, 收到基于CSR的证书,将证书转换为DER格式,并将证书作为trustcacerts导入密钥库 签名证书在证书路径中具有根/中间证书 在将其转换为DER格式后,我还在受信任的根证书下的IE中安装了根证书和中间证书。 使用https时,浏览器显示证书错误并将证书视为自签名证书。 题 这是否意味着由于证书在证书路径中没有Root / intermediate证书,因此不考虑已安装的签名证书? 虽然从CA收到的签名证书具有指向证书路径中的根/中间证书的链接。 如果在此过程中出现任何问题,请提出建议。 为此添加keytool命令。 创建密钥库 keytool -keystore serverdns.keystore -alias server -genkey -keyalg RSA -keysize 2048 创建CSR keytool -certreq -alias server -keystore serverdns.keystore -file server.csr 安装签名证书 keytool -import -trustcacerts -alias cert -keystore serverdns.keystore -file signedcert.der.cer 我在安装签名证书时尝试使用相同的别名’server’,但它失败并出现错误 keytool错误:java.lang.Exception:无法从回复建立链

如何解密服务使用wireshark服务SSL流量?

使用fiddler会导致某些应用程序在我的Windows机器上停止正常工作。 我想使用wireshark来解密我的tomcat和远程服务器之间的所有ssl流量。 所有流量均为https。 我能够设置环境变量SSLKEYLOGFILE并解密浏览器生成的所有SSL流量。 但这不适用于服务呼叫服务。 有权访问tomcat的私钥不再有用,因为有一些叫做前向保密的东西(我对此并不了解)。 从我读到的访问会话密钥是最简单的wireshark解密方式。 如果有人可以回答以下任何一个问题,我的问题就可以解决了。 1>有没有办法让tomcat 8将会话密钥吐出到文件中,以便wireshark可以使用它来解密SSL流量。 我正在使用java 8。 2>是否有一个工具不通过代理重定向流量,但能够解密我的机器上的SSL流量?