java中的SSL-没有RSA?
我有此代码,但在sslContext.init的行中,我得到以下异常: java.security.NoSuchAlgorithmException:RSA KeyManagerFactory不可用 有什么想法吗?替换java中的SSL-没有RSA?,java,ssl,Java,Ssl,我有此代码,但在sslContext.init的行中,我得到以下异常: java.security.NoSuchAlgorithmException:RSA KeyManagerFactory不可用 有什么想法吗?替换 KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(this.getClass().getResourceAsStream("keystore.jks
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(this.getClass().getResourceAsStream("keystore.jks"), "haslo1".toCharArray());
TrustManagerFactory trustManagerFactory =
TrustManagerFactory.getInstance("PKIX", "SunJSSE");
trustManagerFactory.init(keyStore);
X509TrustManager x509TrustManager = null;
for (TrustManager trustManager : trustManagerFactory.getTrustManagers()) {
if (trustManager instanceof X509TrustManager) {
x509TrustManager = (X509TrustManager) trustManager;
break;
}
}
if (x509TrustManager == null) {
throw new NullPointerException();
}
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init( KeyManagerFactory.getInstance( "RSA" ).getKeyManagers(),
new TrustManager[]{x509TrustManager}, null);
与
替换
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(this.getClass().getResourceAsStream("keystore.jks"), "haslo1".toCharArray());
TrustManagerFactory trustManagerFactory =
TrustManagerFactory.getInstance("PKIX", "SunJSSE");
trustManagerFactory.init(keyStore);
X509TrustManager x509TrustManager = null;
for (TrustManager trustManager : trustManagerFactory.getTrustManagers()) {
if (trustManager instanceof X509TrustManager) {
x509TrustManager = (X509TrustManager) trustManager;
break;
}
}
if (x509TrustManager == null) {
throw new NullPointerException();
}
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init( KeyManagerFactory.getInstance( "RSA" ).getKeyManagers(),
new TrustManager[]{x509TrustManager}, null);
与
KeyManagerFactory算法与RSA无关。如果您使用的是其他文档,则可使用的内容将记录在或提供商的文档中
这里唯一可用的选项是SunX509和PKIX。一般来说,最好使用KeyManagerFactory.getDefaultAlgorithm。您也可以为TrustManagerFactory执行此操作,而不是硬编码PKIX。列出了Sun JRE的默认值。KeyManagerFactory算法与RSA无关。如果您使用的是其他文档,则可使用的内容将记录在或提供商的文档中
这里唯一可用的选项是SunX509和PKIX。一般来说,最好使用KeyManagerFactory.getDefaultAlgorithm。您也可以为TrustManagerFactory执行此操作,而不是硬编码PKIX。Sun JRE的默认值已列出。我得到java.lang.IllegalStateException:KeyManagerFactoryImpl未初始化确定,您也不能只对其调用GetKeyManager,您需要先调用init。我得到java.lang.IllegalStateException:KeyManagerFactoryImpl未初始化确定,您也不能只对其调用GetKeyManager,您需要首先调用init。我获取java.lang.IllegalStateException:KeyManagerFactoryImpl未初始化我获取java.lang.IllegalStateException:KeyManagerFactoryImpl未初始化
KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())