问题标签 [sslhandshakeexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - jdk.certpath.disabledAlgorithms=MD2 (javax.net.ssl.SSLHandshakeException)
我的代码运行良好,没有任何异常,我最近连接到服务器,在我的代码中我只是更改了服务器主机名、用户名和密码。我得到了以下异常
当我用谷歌搜索时,我发现我们必须更改Java\jre7\lib\security\java.security
我引用此链接的文件,请单击此处。
但是如果我们开发一个客户端应用程序,这个解决方案就不够好。有没有更好的方法来解决这个问题。
任何帮助都是可观的
ssl - SSLHandshakeException:收到致命警报:在 tomcat 7 服务器上设置密码时握手失败
我有一个 Tomcat7 网络服务器,我尝试通过将此连接器添加到server.xml
文件中来将其配置为接受安全连接:
我正在使用使用此命令生成的自签名证书:
在客户端,我有一个使用RestTemplate
. 在应用程序上下文启动时,我以restTemplate
这种方式初始化实例:
MyCustomClientHttpRequestFactory 类如下所示:
直到这里一切正常。当我在 SslThumbprintVerifier 类中设置断点时,代码到达了这一点,也到达了 NullHostNameVerifier 类。这在生产中经过测试并且效果很好。
现在我想通过限制密码套件来扩展安全性,并将这个属性添加到我在开头介绍的连接器中:
现在,当我运行客户端代码时,我得到了这个异常:
这发生在restTemplate.doExecute()
方法中。代码不会像添加密码之前那样到达指纹验证器类或主机名验证器类。
在调试中,我检查了ctx.getSocketFactory().getSupportedCipherSuites()
显示:
并检查ctx.getSocketFactory().getDefaultCipherSuites()
:
最后是ctx.getSupportedSSLParameters().getCipherSuites()
:
据我了解,如果客户端支持/启用的密码套件与服务器支持的密码套件之间存在交集,它应该可以工作(例如,我们有这样的交集SSL_RSA_WITH_RC4_128_SHA
)。然而我得到了这个错误。
在下一步中,我添加了这个 java 参数:
日志只显示了 client-hello,没有 server-hello 响应:
从 server.xml 中删除密码时,它会再次起作用。 另外我会提到我正在同一台机器上测试服务器和客户端。我尝试将客户端请求中的服务器 ip 设置为“localhost”和实际的机器 ip,但在这两种情况下都不起作用。此外,我让这台服务器在不同的 linux 机器上运行(密钥库是在带有 linux 路径的 linux 机器上生成的)并且仍然 - 它在没有密码的情况下工作并且停止使用密码。
ssl - 为什么在同一会话中进行 SSL 握手后需要 SSL 证书?
我的问题完全基于 Https 连接。
场景如下:
假设我连接到https://www.example.com并且在接受 SSL 证书后,我登录到同一个站点并且会话被建立。然后我从浏览器中删除证书并尝试进一步浏览同一站点,然后我的浏览器要求接受同一站点的证书。为什么这样?
据我所知,在 SSL 握手之后,当生成密钥时,该密钥用于该会话的所有加密。我认为与服务器建立会话后不需要证书。那么为什么我的浏览器在已建立的会话之间要求证书。
java - 如何使因“SSL 对等方错误关闭”而导致 SSL 连接失败的 Java 6 像 Java 7 一样成功?
我看到来自运行 Java 6 的客户端的 SSL 连接失败,出现如下异常:
该服务器是一个基于 Tomcat 7 的应用程序,在 Java 7、Linux 和 Amazon EC2 上运行,物有所值。
我发现了很多关于可能原因的建议,包括意外连接到非 SSL 端口等。我相信我已经排除了这一切,主要是因为完全相同的客户端在运行 Java 7 时工作而没有任何变化。(在这两种情况下都是 OS X。)
下面我包括 Java 6 和 Java 7 的 SSL 连接过程的调试输出。我对专家的问题是,这是否表明可以在 Java 6 中启用某些可能的密码或协议设置(可能是 Java 7 中的默认设置)以使其工作?
爪哇 6:
爪哇 7:
android - Android 模拟器 http-proxy SSL 握手失败
我设置了一个本地 HTTP 代理,用于调试来自我的 Android 应用程序的 .json 请求和响应数据。我使用命令行选项将它部署到运行 Android 4.2.2 的 Nexus One 模拟器映像-http-proxy http://localhost:8888
。我正在使用库存 ADT Build:v21.1.0-569685。我可以使用我使用 groovy 运行的以下代码片段来验证 HTTP 代理是否可以处理 HTTPS 连接:
这个片段很好地获取了 HTTPS 资源,记录了未加密的请求和响应,并且运行良好。从配置为将其用作代理的浏览器访问 HTTPS 资源时,该代理也可以工作,因此我很确定问题不在于代理。根据证书,您可以知道我正在使用 mitmproxy,但此代码也适用于 OWASP ZAP 代理。但是对于任一代理,在 Android 映像上安装适当的 CA 根证书后,来自映像的 HTTPS 请求将失败,并在 mitmproxy 事件日志中记录以下事件:
在 Android 端,抛出以下异常:
其他 HTTP 请求按预期记录和记录。为了成功完成与 HTTP 代理的 SSL 握手,我在 Android 映像的 SSL 设置中缺少什么?
java - 无法使用 java 连接到 HTTPS url
我想使用 java 读取安全 url (HTTPS)。我正在尝试以下。它给了我
这给了我以下输出。
请给我建议什么可以解决错误。注意:我将无法获得证书。所以请不要在获得安全证书时给出答案。
任何形式的指导将不胜感激。谢谢
java - 尝试发送到 SSLServerSocket 时出现 SSLSocket 异常握手错误
这是我第一次处理 SSLSockets ,
我创建了 SSLServerSocket 和 SSLSocket ,
ServerSocket 运行正常,但是在尝试运行 SSLSocket (Client) 时,它没有运行,并且这个错误出现在我身上:
严重:null javax.net.ssl.SSLHandshakeException:收到致命警报:sun.security.ssl.Alerts.getSSLException(Alerts.java:192)处 sun.security.ssl.Alerts.getSSLException(Alerts.java:154)处的 handshake_failure在 sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961) 在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312 ) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) 在 chat.SS.(SS.java:45) 在聊天。 SS.main(SS.java:70)
这是 SSLServerSocket 类的代码:
以及运行时出现错误的 SSLSocket(客户端):
所以我忘了为客户班做些什么?
谢谢你,
编辑 1:我启用了调试,这是调试:
axis2 - WSDL2Java 证书错误
使用 Apache Axis2 中包含的 WSDL2Java.bat 从在线 SOAP WSDL 服务生成 .java 文件,但是我收到有关某些证书的错误。我不知道这是从哪里来的,它应该按照我得到的指示工作。
有人对问题可能是什么或我应该从哪里开始寻找有任何暗示吗?
谢谢
java - SSL 握手错误 javax.net.ssl.SSLHandshakeException 收到致命警报 bad_certificate
我正在执行以下 cURL 命令,并且从服务器得到正确的响应:
现在通过我的 CXF soap webClient 做同样的事情,我得到了以下异常:
我已使用以下命令将主机 xevias.com:8481 的证书导入我的 keyStore:
请让我知道如何使用密钥导入证书,以便 cURL 命令中的所有内容都可以安装在相应的位置。