如何从类路径中将.p12证书导入到Java密钥库中?首先,我使用了InstallCert https://code.google.com/p/java-
use-
examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java
进行了一些更改,以便获得服务器证书将被导入到Java安装目录中的密钥库中。这工作正常,但现在我想从类路径中加载证书。
编辑:我只是使用一个.cer证书,请参阅下一个答案
答案:
InputStream certIn = ClassLoader.class.getResourceAsStream("/package/myCert.cer");
final char sep = File.separatorChar;
File dir = new File(System.getProperty("java.home") + sep + "lib" + sep + "security");
File file = new File(dir, "cacerts");
InputStream localCertIn = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(localCertIn, passphrase);
if (keystore.containsAlias("myAlias")) {
certIn.close();
localCertIn.close();
return;
}
localCertIn.close();
BufferedInputStream bis = new BufferedInputStream(certIn);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
while (bis.available() > 0) {
Certificate cert = cf.generateCertificate(bis);
keystore.setCertificateEntry("myAlias", cert);
}
certIn.close();
OutputStream out = new FileOutputStream(file);
keystore.store(out, passphrase);
out.close();
对于Java Web Start,请不要使用ClassLoader,而应使用Class本身:
InputStream certIn = Certificates.class.getResourceAsStream("/package/myCert.cer");
问题内容: 在Java Web服务客户端的开发过程中,我遇到了一个问题。Web服务的身份验证使用客户端证书,用户名和密码。我从Web服务背后的公司那里收到的客户证书采用格式。当我使用文本编辑器检查文件时,它具有以下内容: 我可以在Internet Explorer中将该文件作为证书导入(无需输入密码!),并使用它通过Web服务进行身份验证。 通过首先剥离第一行和最后一行,转换为换行符并运行base
问题内容: 我想创建一个将.cer CA导入现有密钥库文件的JAVA程序。这样最终用户可以更加方便地插入CA证书(无需使用CMD和命令中的键)。 JAVA代码可以在任何地方做到这一点吗? 我尝试以某种方式,但仍然无法将证书导入Java 错误是不兼容的类型,还有其他建议吗? 谢谢很多 问题答案: 以下代码将CA cert文件插入您的密钥库,而无需使用:
问题内容: 我正在将SSL客户端连接到我的SSL服务器。当客户端由于根密钥不存在而无法验证证书时,我需要选择将该证书添加到代码中的本地密钥存储中并继续。有一些示例始终接受所有证书,但是我希望用户验证证书并将其添加到本地密钥存储中,而无需离开应用程序。 关于自定义SocketFactory,TrustManager,SSLContext等的内容很多,我不太了解它们如何组合在一起,或者这将是我实现目标
我试图让一个运行在Tomcat 6之上的应用程序通过SSL连接到LDAP服务器。 我使用以下方法将服务器的证书导入密钥库: 当我用SSL调试打开启动Tomcat时,根据日志Tomcat正在使用正确的证书文件: 但是,Tomcat没有添加我刚刚导入的证书——cacerts文件中的所有其他证书都会打印到日志中——并且连接失败: 重启Tomcat没有帮助。我已经用keyool-list命令验证了新的证书
问题内容: 有没有人遇到过他们必须处理.truststore文件的地方?并且知道如何将.cer导入.truststore文件? 我不确定是否必须使用Java Keytool或Linux命令(例如openssl命令)。 谢谢 问题答案: changeit是默认的信任库密码
我们如何加载他们的公钥?