加载认证SSL证书到Netty引擎

Tam*_*ein 4 netty

我正在使用位于Netty示例代码文件夹中的SSL示例:

String keyStoreFilePath = System.getProperty("keystore.file.path");
String keyStoreFilePassword = System.getProperty("keystore.file.password");

KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream fin = new FileInputStream(keyStoreFilePath);
ks.load(fin, keyStoreFilePassword.toCharArray());

// Set up key manager factory to use our key store
// Assume key password is the same as the key store file
// password
KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
kmf.init(ks, keyStoreFilePassword.toCharArray());
Run Code Online (Sandbox Code Playgroud)

我使用以下方法生成自己的密钥库:

/usr/java/jdk1.6.0_25/bin/keytool -genkey -keystore SrvKeystore -keyalg RSA

一切都很好!!

但是我现在想使用comodo提供给我的官方证书(https://secure.comodo.com/)

他们显然提供3种文件类型:.csr,.crt和.key

请告知哪个文件应该指向keystore.file.path以及哪个指向keystore.file.password

也许我需要做别的事情?

Gar*_*eth 5

Comodo以最友好的Web服务器格式(如Apache和nginx)为您提供证书和私钥.

有两种方法可以解决此问题:

(1)将证书链(.crt)和私钥(.key)导入jks或pkcs 12密钥库(使用keytool或openssl).

(2)使用java CertificateFactory读取cert和bouncycastle PEMReader以读取私钥,然后将其包装在您自己的密钥管理器中(您可以将其传递给SSLContext).