在Java中,我們可以通過以下步驟生成cer和key證書文件:
1. 生成私鑰key文件:
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); // 指定密鑰長度 KeyPair keyPair = keyPairGenerator.generateKeyPair(); // 生成密鑰對 PrivateKey privateKey = keyPair.getPrivate(); // 獲取私鑰 OutputStream outputStream = new FileOutputStream("D:/key/test.keystore"); outputStream.write(privateKey.getEncoded()); outputStream.close();
2. 生成證書文件:
X500Name x500Name = new X500Name("CN=Test,OU=Test,O=Test,C=CN"); Date startDate = new Date(); Date endDate = new Date(startDate.getTime() + 3650 * 24 * 60 * 60 * 1000L); // 證書有效期10年 BigInteger serialNumber = new BigInteger(64, new SecureRandom()); // 序列號隨機生成 X509v3CertificateBuilder certificateBuilder = new JcaX509v3CertificateBuilder(x500Name, serialNumber, startDate, endDate, x500Name, publicKey); ContentSigner contentSigner = new JcaContentSignerBuilder("SHA256WithRSA").build(privateKey); X509CertificateHolder certificateHolder = certificateBuilder.build(contentSigner); OutputStream certificateOutputStream = new FileOutputStream("D:/key/test.cer"); certificateOutputStream.write(certificateHolder.getEncoded()); certificateOutputStream.close();
以上是生成cer和key證書文件的完整代碼,其中私鑰文件使用了Java自帶的一對生成器,指定了密鑰長度為2048位。生成證書文件部分使用了BC庫中的X509v3CertificateBuilder類,指定了證書的基本信息,有效期等信息。