Câu trả lời:
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();
Đối với Java Web Start không sử dụng ClassLoader, sử dụng lớp itselfe:
InputStream certIn = Certificates.class.getResourceAsStream("/package/myCert.cer");
Khi bạn giải quyết câu hỏi của riêng mình, bạn nên đặt câu hỏi đó làm câu trả lời. Nó đã giúp tôi bởi vì đây là một vấn đề mà tôi sẽ phải đối phó trong một tương lai gần. Vì vậy, nó có thể giúp đỡ người khác. –
Được rồi, vui lòng giúp những người khác :) – Pali