Javaコードを使用して存在するキーストアからcsrを生成する方法は?javaを使用して存在するキーストアからcsrを生成する方法
機能(ただし、ファイルgenearateない)
をキーツール-certreq -alias certificate_alias -keystore jssecacerts -storepass changeitと-file client.csr
私はちょうど見つけたなどと同じになります影響を及ぼす"Generating a Certificate Signing Request using Java API"
私はすでにX.509証明書を持っていますが、どのようにしてこの証明書を使ってjavaでcsrを生成できますか?
KeyStore ts = KeyStore.getInstance("JKS");
FileInputStream is = new FileInputStream(trustStoreFileName);
ts.load(is, trustStorePassword.toCharArray());
is.close();
X509Certificate x509Cert = (X509Certificate)ts.getCertificate("certificate_alias");
CSRを生成するにはどうすればよいですか?
私はちょうどそれが〜
が存在する証明書からCSRを生成するために、すべての私のコードを共有するには解決します。
KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream is = new FileInputStream(trustStoreFileName);
ks.load(is, trustStorePassword.toCharArray());
is.close();
X509Certificate x509Cert = (X509Certificate)ks.getCertificate("certificate_alias");
X500Principal principal = x509Cert.getSubjectX500Principal();
X500Name x500Name = new X500Name(principal.getName());
PublicKey publicKey = x509Cert.getPublicKey();
PrivateKey privateKey = (PrivateKey) ks.getKey("certificate_alias", trustStorePassword.toCharArray());
String sigAlg = x509Cert.getSigAlgName();
PKCS10 pkcs10 = new PKCS10(publicKey);
Signature signature = Signature.getInstance(sigAlg);
signature.initSign(privateKey);
pkcs10.encodeAndSign(new X500Signer(signature, x500Name));
ByteArrayOutputStream bs = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(bs);
pkcs10.print(ps);
byte[] c = bs.toByteArray();
try {
if (ps != null)
ps.close();
if (bs != null)
bs.close();
} catch (Throwable th) {
}
既存のキーストアからCSRを生成しています*。秘密鍵を持たないため、証明書からCSRを生成することはできません。あなたの質問は理にかなっていません。 – EJP
あなたの答えをありがとう、私はそれを解決〜 – RoyHSIEH