2
.cer 확장자를 가진 파일을 .jks 파일로 변환하고 싶습니다. 누군가 이걸로 나를 도울 수 있니? 나는 그것을 봤지만 많은 정보를 얻지 못했다. 튜토리얼이나 링크조차도 괜찮습니다. Java Key Store가 사용 된 것 같습니다. 감사합니다. ..cer을 java를 사용하는 .jks로 변환
.cer 확장자를 가진 파일을 .jks 파일로 변환하고 싶습니다. 누군가 이걸로 나를 도울 수 있니? 나는 그것을 봤지만 많은 정보를 얻지 못했다. 튜토리얼이나 링크조차도 괜찮습니다. Java Key Store가 사용 된 것 같습니다. 감사합니다. ..cer을 java를 사용하는 .jks로 변환
내가 BouncyCastle 라이브러리, 최신 버전 (1.51)
String certificateString = textSerializer.readStringFromFile(context, certificateFileName); //CERT IN PEM
X509CertificateHolder x509CertificateHolder = pemConverter.convertPEMtoX509CertificateHolder(certificateString);
PEMConverter 내 자신의 클래스를 사용하고이 방법이이 BouncyCastle X509Certificate에 당신을 제공이
public X509CertificateHolder convertPEMtoX509CertificateHolder(String certPEMData)
throws IOException {
PEMParser pemParser = new PEMParser(new StringReader(certPEMData));
Object parsedObj = pemParser.readObject();
if (parsedObj instanceof X509CertificateHolder) {
X509CertificateHolder x509CertificateHolder = (X509CertificateHolder) parsedObj;
return x509CertificateHolder;
} else {
System.out.println("The object " + parsedObj.toString() + " is not an X509CertificateHolder.");
}
}
것 같습니다. 변환기로 JCE 인증서로 변환 할 수 있습니다.
public X509Certificate convertToJceX509Certificate(X509CertificateHolder x509CertificateHolder) //java.security.cert.x509certificate
{
try
{
return new JcaX509CertificateConverter()
.setProvider(BouncyCastleProvider.PROVIDER_NAME)
.getCertificate(x509CertificateHolder);
}
catch (CertificateException e)
{
log.error("Error during BC -> JCA conversion of Certificate.", e);
throw new RuntimeException(e);
}
}
이제 키 스토어
KeyPair keyPair = this.keyPairReader.readKeyPairFromFile(context, keyPairFileName);
PrivateKey privateKey = keyPair.getPrivate();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try
{
KeyStore ks = KeyStore.getInstance("PKCS12", BouncyCastleProvider.PROVIDER_NAME);
ks.load(null);
ks.setKeyEntry("key-alias", (Key) privateKey, password.toCharArray(),
new java.security.cert.Certificate[] { certificate });
ks.store(bos, password.toCharArray());
bos.close();
Log.d(PKCS12KeyStoreExporter.class.getName(), "Export to byte array complete.");
}
catch(...)
{
//...
}
return bos.toByteArray();
에로드하려면이 옵션을 사용할 수 있습니다 그리고이 byte[]
은 PKCS12 파일입니다. 그러나 JKS의 유일한 차이점은 표준 JCE 공급자를 사용하고 PKCS12
대신 JKS
인스턴스 KeyStore를 얻는 것입니다.
전환이 아닙니다. 그것은 수입품입니다. –
가능한 중복 http://stackoverflow.com/questions/4325263/how-to-import-a-cer-certificate-into-a-java-keystore –