【发布时间】:2015-07-24 09:54:27
【问题描述】:
我遇到了一个异常,告诉我“AES KeyManagerFactory 不可用”。
这是我的代码:
try {
LOG.warn("Configuring SSL connection on port 8085");
KeyStore keystore = KeyStore.getInstance("JCEKS");
keystore.load(new FileInputStream("/.peg.jceks"),
"password".toCharArray());
KeyStore kstrust = KeyStore.getInstance("JCEKS");
String truststorelocation = "/.peg.jceks";
kstrust.load(new FileInputStream(truststorelocation), "changeit".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keystore, "password".toCharArray());
TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(kstrust);
context = SSLContext.getInstance("TLS");
context.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
SSLServerSocketFactory sf = context.getServerSocketFactory();
SSLServerSocket ss = (SSLServerSocket)sf.createServerSocket(8085);
ss.setNeedClientAuth(true);
} catch (Exception e) {
e.printStackTrace();
LOG.error("Problem configuring SSL", e.getMessage());
}
我正面临这个异常
java.security.NoSuchAlgorithmException: AES KeyManagerFactory not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at javax.net.ssl.KeyManagerFactory.getInstance(KeyManagerFactory.java:10)
有人能解决这个问题吗?
【问题讨论】:
-
我对异常发生的位置进行了有根据的猜测。但请始终在代码中指出异常的位置。我们没有行号!
-
我还稍微编辑了标签和异常。 encryption 经常被滥用为cryptography。 TLS 提供的不仅仅是加密。 java-security 和
security太笼统了;只需使用 java 和 cryptography 就足够了。注意java-security有0个关注者,只有28个问题;即没有人对标签感兴趣。 -
也很重要:我看到您提出的问题已经得到明确回答。您似乎不接受这些问题,因此它们不会保持开放。请选择适合您需要的答案和accept that one,或者指出答案中仍然缺少的内容。
标签: java security ssl cryptography