使用java代码将证书添加到密钥库

Roh*_*hit 17 java https digital-certificate keytool ssl-certificate

我正在尝试使用服务器的.cer证书文件建立https连接.我可以使用浏览器手动获取证书文件,并使用keytool将其放入密钥库.然后,我可以使用java代码访问密钥库,获取我添加到密钥库的证书并连接到服务器.

我现在想要实现获取证书文件并使用java代码将其添加到我的密钥库并且不使用keytool或浏览器来获取证书的过程.

有人可以告诉我如何处理这个以及我需要做什么?

San*_*dro 15

编辑:似乎完全符合你的要求.

使用以下代码可以在运行时添加信任库.

import java.io.InputStream;
import java.security.KeyStore;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;

public class SSLClasspathTrustStoreLoader {
    public static void setTrustStore(String trustStore, String password) throws Exception {
        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509");
        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        InputStream keystoreStream = SSLClasspathTrustStoreLoader.class.getResourceAsStream(trustStore);
        keystore.load(keystoreStream, password.toCharArray());
        trustManagerFactory.init(keystore);
        TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustManagers, null);
        SSLContext.setDefault(sc);
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用此代码与活动目录服务器建立安全的LDAP连接.

也可能是有用的,在底部有一个类,它可以在运行时导入证书.

  • 谷歌搜索"从网站上的Java下载证书"我发现[这](http://snippets.dzone.com/posts/show/4736).它似乎完全符合你的要求. (2认同)
  • @NickGrealy参见此处:https://web.archive.org/web/20130319003303/http://dzone.com/snippets/ssl-download-certificate-chain (2认同)