gpt4 book ai didi

java - 获取 javax.net.ssl.SSLProtocolException : end of file

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:06 33 4
gpt4 key购买 nike

在我将 IHS 服务器从 7.0.0.33 升级到 7.0.0.37 之后..

在最新的 IHS 服务器中,SSLv3 被完全禁用..

我的下面一段代码

HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
urlConn.setUseCaches(false);
urlConn.setRequestMethod("POST");
urlConn.setDoOutput(true);
DataOutputStream os = new DataOutputStream(urlConn.getOutputStream());
os.writeBytes( obj.toString());
os.flush();
os.close();

我发现

 DataOutputStream os = new DataOutputStream(urlConn.getOutputStream()); 

此处代码中断并显示“不支持的协议(protocol)”之后它抛出以下错误

[5/13/15 14:00:47:730 GMT] 0000001c SystemErr     R javax.net.ssl.SSLProtocolException: end of file
at com.ibm.jsse.bv.a(Unknown Source)
at com.ibm.jsse.bv.startHandshake(Unknown Source)
at com.ibm.net.ssl.www2.protocol.https.b.o(b.java:136)
at com.ibm.net.ssl.www2.protocol.https.i.connect(i.java:28)
at com.ibm.net.ssl.www2.protocol.http.bc.getOutputStream(bc.java:44)
at com.ibm.net.ssl.www2.protocol.https.l.getOutputStream(l.java:23)
at com.corio.tsr.webservices.SRAutomationWebServiceClient.getJsonObject(SRAutomationWebServiceClient.java:166)
at com.corio.tsr.jms.receiver.SRAutomationMessageBean.onMessage(Unknown Source)
at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1013)
at com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:746)
at $Proxy2.onMessage(Unknown Source)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaEndpointInvokerImpl.invokeEndpoint(JmsJcaEndpointInvokerImpl.java:201)
at com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:627)
at com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:463)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:394)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

任何人都可以建议我能做什么或关于如何摆脱这个错误的任何线索

最佳答案

需要 SSL 握手。否则它将无法工作。首先尝试为协议(protocol)支持设置属性

urlConn.setRequestProperty("https.protocols", "TLSv1");

如果您收到“javax.net.ssl.SSLHandshakeException:远程主机已关闭连接”,请按照以下步骤操作。

如果您使用的是 IE,请按以下步骤操作:
1)在浏览器上使用https协议(protocol)访问URL(例如:服务WSDL位置(Ex. https://foo.com/bar?wsdl)。
2)Internet Explorer 会提示安全警报。选择“查看证书”按钮。
3) 导航到“详细信息”选项卡。选择“复制到文件...”按钮。
4) 将显示证书导出向导。选择“下一步”按钮。
5)选项“DER encoded binary X.509 (.CER) will be default selected. Select "Next".
6) 将文件放在更适合您的位置。S7)选择“下一步”。将显示“完成证书导出向导”。选择“完成”。将弹出一个提示“导出成功”。

以下是将证书签名导入 JRE keystore 的步骤:
1) 将证书文件移动到您的 %JAVA_HOME%/jre/lib/security 文件夹。
2)在ant中你可以使用命令ant –diagnostics通过java.home系统属性找到java安装文件夹。
3) 备份 %JAVA_HOME%/jre/lib/security 下名为“cacerts”( keystore )的文件。
4) 打开命令提示符并将目录 (cd) 更改为 %JAVA_HOME%/jre/lib/security。
5)运行以下命令:

keytool -importcert -trustcacerts -keystore cacerts -storepass changeit -alias "<aliasname>" –file <cert file>

7) 输入"is"。 (出现不受信任证书的提示)8)运行以下命令进行验证:9)keytool -keystore cacerts -storepass changeit -list -alias ""

关于java - 获取 javax.net.ssl.SSLProtocolException : end of file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221212/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com