帮我用java代码生成设备证书
时间: 2023-09-05 19:09:54 浏览: 99
当然可以,以下是生成设备证书的 Java 代码示例:
```java
import java.security.*;
import java.security.cert.*;
import java.util.Date;
public class DeviceCertificateGenerator {
public static void main(String[] args) throws Exception {
// 生成公私钥对
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
// 创建证书
X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();
X500Principal subjectName = new X500Principal("CN=Device");
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setIssuerDN(subjectName);
certGen.setNotBefore(new Date(System.currentTimeMillis()));
certGen.setNotAfter(new Date(System.currentTimeMillis() + 365L * 24L * 60L * 60L * 1000L));
certGen.setSubjectDN(subjectName);
certGen.setPublicKey(publicKey);
certGen.setSignatureAlgorithm("SHA256withRSA");
X509Certificate cert = certGen.generate(privateKey);
// 输出证书信息
System.out.println("设备证书公钥:" + publicKey);
System.out.println("设备证书私钥:" + privateKey);
System.out.println("设备证书:" + cert);
}
}
```
以上代码生成一个 RSA 密钥对,并使用私钥签名生成一张证书,可以通过 `cert.getPublicKey()` 获得证书的公钥,通过 `cert` 直接获得证书信息。
阅读全文