服务器拒绝了Https连接
我正在尝试编写一个独立的程序,该程序将由bat文件调用。我找到了类似于信任所有证书管理器的东西服务器拒绝了Https连接,https,rsa,Https,Rsa,我正在尝试编写一个独立的程序,该程序将由bat文件调用。我找到了类似于信任所有证书管理器的东西 TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null;
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
URL url = new URL("--insert server url here--");
//url.openStream();
// URLConnection urlConnection = url.openConnection();
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
} catch (MalformedURLException mfe) {
mfe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
它在我的ide中工作得很好,但是在我内置并通过bat文件运行它之后,它一直给我这个错误
javax.net.ssl.SSLException: Server key
at sun.security.ssl.Handshaker.throwSSLException(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source
)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So
urce)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unk
nown Source)
at sss.Sss.main(Sss.java:65)
Caused by: java.security.NoSuchAlgorithmException: NONEwithRSA Signature not ava
ilable
at java.security.Signature.getInstance(Unknown Source)
at sun.security.ssl.JsseJce.getSignature(Unknown Source)
at sun.security.ssl.RSASignature.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Signature.getInstance(Unknown Source)
at sun.security.ssl.JsseJce.getSignature(Unknown Source)
at sun.security.ssl.RSASignature.getInstance(Unknown Source)
at sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>(Unknown
Source)
... 13 more
javax.net.ssl.SSLException:服务器密钥
位于sun.security.ssl.Handshaker.throwSSLException(未知源)
位于sun.security.ssl.ClientHandshaker.processMessage(未知源)
位于sun.security.ssl.Handshaker.processLoop(未知源)
位于sun.security.ssl.Handshaker.process_记录(未知源)
位于sun.security.ssl.SSLSocketImpl.readRecord(未知源)
位于sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知源
)
位于sun.security.ssl.SSLSocketImpl.startHandshake(未知源)
位于sun.security.ssl.SSLSocketImpl.startHandshake(未知源)
位于sun.net.www.protocol.https.HttpsClient.afterConnect(未知来源)
位于sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(来源不明)
在sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知)上
(资源)
位于java.net.HttpURLConnection.getResponseCode(未知源)
在sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unk
未知来源)
位于sss.sss.main(sss.java:65)
原因:java.security.NoSuchAlgorithmException:NONEwithRSA签名非ava
宜居的
位于java.security.Signature.getInstance(未知源)
位于sun.security.ssl.JsseJce.getSignature(未知源)
位于sun.security.ssl.RSASignature。(未知来源)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
在sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知Sou
(rce)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.Class.newInstance0(未知源)
位于java.lang.Class.newInstance(未知源)
位于java.security.Provider$Service.newInstance(未知源)
位于sun.security.jca.GetInstance.GetInstance(未知源)
位于java.security.Signature.getInstance(未知源)
位于sun.security.ssl.JsseJce.getSignature(未知源)
位于sun.security.ssl.RSASignature.getInstance(未知源)
在sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange。(未知)
(来源)
... 还有13个
我做错什么了吗?我应该签署证书才能连接到服务器吗?如果找到了上述问题的答案,则需要将sunjce_provider.jar包含到独立程序的lib文件夹中