我想创建一个使用Java语言中的X509证书,然后从中提取公共密钥。
我已经在网上搜索,发现了很多代码示例,但所有的人都错误(未知变量或未知类型)或有许多警告,这样说:“该方法从... ...类型不推荐使用”等。
例如,为什么下面的代码不工作:
PublicKey pk;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
String PKstr = pk.toString();
InputStream PKstream = new ByteArrayInputStream(PKstr.getBytes());
X509Certificate pkcert = (X509Certificate)cf.generateCertificate(PKstream);
谁能告诉我如何创建一个使用纯Java或充气城堡,然后得到一个公钥证书?
感谢所有。
您也可以只使用JDK类生成证书。 缺点是,你必须使用两班从sun.security.x509包。 该代码将是:
KeyStore keyStore = ... // your keystore
// generate the certificate
// first parameter = Algorithm
// second parameter = signrature algorithm
// third parameter = the provider to use to generate the keys (may be null or
// use the constructor without provider)
CertAndKeyGen certGen = new CertAndKeyGen("RSA", "SHA256WithRSA", null);
// generate it with 2048 bits
certGen.generate(2048);
// prepare the validity of the certificate
long validSecs = (long) 365 * 24 * 60 * 60; // valid for one year
// add the certificate information, currently only valid for one year.
X509Certificate cert = certGen.getSelfCertificate(
// enter your details according to your application
new X500Name("CN=My Application,O=My Organisation,L=My City,C=DE"), validSecs);
// set the certificate and the key in the keystore
keyStore.setKeyEntry(certAlias, certGen.getPrivateKey(), null,
new X509Certificate[] { cert });
检索密钥存储私钥加密或解密数据。 基于代码是从http://www.pixelstech.net/article/1408524957-Generate-cetrificate-in-Java----3
是的,BouncyCastle的,创建2个公钥(用于证书密钥和一个用于CA)的X509证书做在这里 。
我把生成的证书为PEM 这里 。