Skip to content

创建数字证书

PKCS12(公钥密码学标准 #12)格式的数字证书通常包含公钥和私钥,以及与证书相关的其他信息。PKCS12 是一种用于存储安全证书、私钥和其他相关信息的标准格式。这种格式通常用于导出、备份和共享在安全通信和身份验证中使用的数字证书和私钥。

在创建 PKCS12 标准的证书时,除了确认您身份信息的数据外,通常还需要设置密码保护您的证书,只有持有密码的人才能访问其中的私钥,并通过证书执行签署文件等操作。

以下是创建数字签名证书的示例代码:

java
// 创建证书。
// 
// 密码: ComPDFKit
// 
// 信息: /C=SG/O=ComPDFKit/D=R&D Department/CN=Alan/emailAddress=xxxx@example.com
// 
// C=SG: 这展示的是国家代码“SG”,代表国家:新加坡。
// O=ComPDFKit: 这是组织(O)字段,表示组织或实体的名称,在本例中组织为"ComPDFKit"。
// D=R&D Department: 这是部门(D)字段,表示组织内的特定部门,在本例中为“R&D Department”。
// CN=Alan: 这是通用名称(CN)字段,通常表示个人或实体的名称。在这种情况下,它是"Alan"。
// emailAddress=xxxx@example.com: 电子邮件地址是xxxx@example.com
//
// CPDFCertUsage.CPDFCertUsageAll: 同时用于数字签名和数据验证。
// 
// is_2048 = true: 增强的安全加密。
//
String password = "ComPDFKit";
CPDFOwnerInfo ownerInfo = new CPDFOwnerInfo();
ownerInfo.setCommonName("Alan");
ownerInfo.setOrgnize("ComPDFKit");
ownerInfo.setEmail("xxxx@example.com");
ownerInfo.setCountry("SG");
ownerInfo.setOrgnizeUnit("R&D Department");
CPDFSignature.CertUsage flag = CPDFSignature.CertUsage.PDFDigSig;
File certFile = new File(outputDir(), "certificate/Certificate.pfx");
certFile.getParentFile().mkdirs();
boolean result = CPDFSignature.generatePKCS12Cert(ownerInfo, password, certFile.getAbsolutePath(), flag);
kotlin
// 创建证书。
// 
// 密码: ComPDFKit
// 
// 信息: /C=SG/O=ComPDFKit/D=R&D Department/CN=Alan/emailAddress=xxxx@example.com
// 
// C=SG: 这展示的是国家代码“SG”,代表国家:新加坡。
// O=ComPDFKit: 这是组织(O)字段,表示组织或实体的名称,在本例中组织为"ComPDFKit"。
// D=R&D Department: 这是部门(D)字段,表示组织内的特定部门,在本例中为“R&D Department”。
// CN=Alan: 这是通用名称(CN)字段,通常表示个人或实体的名称。在这种情况下,它是"Alan"。
// emailAddress=xxxx@example.com: 电子邮件地址是xxxx@example.com
//
// CPDFCertUsage.CPDFCertUsageAll: 同时用于数字签名和数据验证。
val password = "ComPDFKit"
val ownerInfo =  CPDFOwnerInfo().apply {
  commonName = "Alan"
  orgnize = "ComPDFKit"
  email = "xxxx@example.com"
  country = "SG"
  orgnizeUnit = "R&D Department"
}
val flag = CertUsage.PDFDigSig
val certFile = File(outputDir(), "certificate/Certificate.pfx")
certFile.parentFile.mkdirs()
val result = CPDFSignature.generatePKCS12Cert(ownerInfo, password, certFile.absolutePath, flag)