Java RSA预主密钥错误

Java RSA预主密钥错误,java,http,Java,Http,我继承了一些代码,不知道它想做什么(我评论了我认为它在做什么),最初的程序员几年前离开了我的组织。。。我希望这里伟大的社区至少能为我指明一些方向,让我知道这段代码可能要做什么,我可以从哪里开始寻找解决方案 Java代码 //Read java.security file from JDK and create a Security provider from it PropertyFileReader reader = new PropertyFileReader(); Security.add

我继承了一些代码,不知道它想做什么(我评论了我认为它在做什么),最初的程序员几年前离开了我的组织。。。我希望这里伟大的社区至少能为我指明一些方向,让我知道这段代码可能要做什么,我可以从哪里开始寻找解决方案

Java代码

//Read java.security file from JDK and create a Security provider from it
PropertyFileReader reader = new PropertyFileReader();
Security.addProvider(new IBMJSSEProvider());
Security.setProperty("ssl.SocketFactory.provider",
"com.ibm.jsse2.SSLSocketFactoryImpl");
System.getProperties().putAll(
reader.readProperties("security.properties"));

//Set some authentication stuff
Authenticator.setDefault(new PasswordAuthentication("User", "Password"));

// get url to servlet (note, actual application has valid url)
url = new URL("Connection URL");

// Set out HTTP URL connection
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("Authorization", "Basic ");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setDefaultUseCaches(false);
httpURLConnection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
httpURLConnection.setRequestMethod("POST");

//EXCEPTION IS THROWN HERE!
DataOutputStream outputStream = new DataOutputStream(
httpURLConnection.getOutputStream());
javax.net.ssl.SSLKeyException: RSA premaster secret error
at com.ibm.jsse2.fb.<init>(fb.java:38)
at com.ibm.jsse2.hb.a(hb.java:200)
at com.ibm.jsse2.hb.a(hb.java:70)
at com.ibm.jsse2.gb.n(gb.java:223) 
at com.ibm.jsse2.gb.a(gb.java:170)
at com.ibm.jsse2.sc.a(sc.java:595)
at com.ibm.jsse2.sc.g(sc.java:284)
at com.ibm.jsse2.sc.a(sc.java:200)
at com.ibm.jsse2.sc.startHandshake(sc.java:205)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsU    RLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.jav    a:230)
堆栈跟踪

//Read java.security file from JDK and create a Security provider from it
PropertyFileReader reader = new PropertyFileReader();
Security.addProvider(new IBMJSSEProvider());
Security.setProperty("ssl.SocketFactory.provider",
"com.ibm.jsse2.SSLSocketFactoryImpl");
System.getProperties().putAll(
reader.readProperties("security.properties"));

//Set some authentication stuff
Authenticator.setDefault(new PasswordAuthentication("User", "Password"));

// get url to servlet (note, actual application has valid url)
url = new URL("Connection URL");

// Set out HTTP URL connection
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("Authorization", "Basic ");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setDefaultUseCaches(false);
httpURLConnection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
httpURLConnection.setRequestMethod("POST");

//EXCEPTION IS THROWN HERE!
DataOutputStream outputStream = new DataOutputStream(
httpURLConnection.getOutputStream());
javax.net.ssl.SSLKeyException: RSA premaster secret error
at com.ibm.jsse2.fb.<init>(fb.java:38)
at com.ibm.jsse2.hb.a(hb.java:200)
at com.ibm.jsse2.hb.a(hb.java:70)
at com.ibm.jsse2.gb.n(gb.java:223) 
at com.ibm.jsse2.gb.a(gb.java:170)
at com.ibm.jsse2.sc.a(sc.java:595)
at com.ibm.jsse2.sc.g(sc.java:284)
at com.ibm.jsse2.sc.a(sc.java:200)
at com.ibm.jsse2.sc.startHandshake(sc.java:205)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsU    RLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.jav    a:230)
javax.net.ssl.SSLKeyException:RSA premaster机密错误
位于com.ibm.jsse2.fb.(fb.java:38)
位于com.ibm.jsse2.hb.a(hb.java:200)
位于com.ibm.jsse2.hb.a(hb.java:70)
位于com.ibm.jsse2.gb.n(gb.java:223)
位于com.ibm.jsse2.gb.a(gb.java:170)
位于com.ibm.jsse2.sc.a(sc.java:595)
位于com.ibm.jsse2.sc.g(sc.java:284)
位于com.ibm.jsse2.sc.a(sc.java:200)
位于com.ibm.jsse2.sc.startHandshake(sc.java:205)
位于sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
位于sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsU RLConnection.java:166)
位于sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
位于sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.jav a:230)
  • 这是一种什么样的联系
  • RSA Premaster的秘密到底是什么
  • 我应该从哪里开始寻找/学习以了解发生了什么

  • 谢谢

    今天我们的web应用程序也出现了类似的问题。系统管理员室的人没有询问任何人就更新了Java版本。经过几个小时的搜寻,我发现了一些有用的东西。 如果您仍感兴趣,请点击以下链接:

    解决方案:只需从服务器类路径中删除更新的java版本,然后尝试安装旧的java版本

    Stackoverflow中的类似问题: