本页内容
创建数字证书
PKCS12(公钥密码学标准 #12)格式的数字证书通常包含公钥和私钥,以及与证书相关的其他信息。PKCS12 是一种用于存储安全证书、私钥和其他相关信息的标准格式。这种格式通常用于导出、备份和共享在安全通信和身份验证中使用的数字证书和私钥。
在创建 PKCS12 标准的证书时,除了确认您身份信息的数据外,通常还需要设置密码保护您的证书,只有持有密码的人才能访问其中的私钥,并通过证书执行签署文件等操作。
以下是创建数字签名证书的示例代码:
swift
// 创建证书。
//
// 密码: ComPDFKit
//
// 信息: /C=SG/O=ComPDFKit/D=R&D Department/CN=Alan/[email protected]
//
// C=SG: 这展示的是国家代码“SG”,代表国家:新加坡。
// O=ComPDFKit: 这是组织(O)字段,表示组织或实体的名称,在本例中组织为"ComPDFKit"。
// D=R&D Department: 这是部门(D)字段,表示组织内的特定部门,在本例中为“R&D Department”。
// CN=Alan: 这是通用名称(CN)字段,通常表示个人或实体的名称。在这种情况下,它是"Alan"。
// [email protected]: 电子邮件地址是[email protected]
//
// CPDFCertUsage.CPDFCertUsageAll: 同时用于数字签名和数据验证。
//
// is_2048 = true: 增强的安全加密。
//
var certificateInfo = [String: Any]()
certificateInfo["CN"] = "Alan"
certificateInfo["emailAddress"] = emailTextField?.inputTextField?.text
certificateInfo["C"] = coutryCode
let path = NSHomeDirectory() + "/Documents"
let writeDirectoryPath = "\(path)/Signature"
let tempFilePath = "\(writeDirectoryPath)/\(URL(fileURLWithPath: filePath ?? "").lastPathComponent)"
CPDFSignature.generatePKCS12Cert(withInfo: certificateInfo, password: "123", toPath: tempFilePath, certUsage: .digSig)
objective-c
// 创建证书。
//
// 密码: ComPDFKit
//
// 信息: /C=SG/O=ComPDFKit/D=R&D Department/CN=Alan/[email protected]
//
// C=SG: 这展示的是国家代码“SG”,代表国家:新加坡。
// O=ComPDFKit: 这是组织(O)字段,表示组织或实体的名称,在本例中组织为"ComPDFKit"。
// D=R&D Department: 这是部门(D)字段,表示组织内的特定部门,在本例中为“R&D Department”。
// CN=Alan: 这是通用名称(CN)字段,通常表示个人或实体的名称。在这种情况下,它是"Alan"。
// [email protected]: 电子邮件地址是[email protected]
//
// CPDFCertUsage.CPDFCertUsageAll: 同时用于数字签名和数据验证。
//
// is_2048 = true: 增强的安全加密。
//
NSMutableDictionary * cer = [NSMutableDictionary dictionary];
[cer setValue:@"Alan" forKey:@"CN"];
[cer setValue:@"[email protected]" forKey:@"emailAddress"];
[cer setValue:@"CN" forKey:@"C"];
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *writeDirectoryPath = [NSString stringWithFormat:@"%@/%@", path, @"Signature"];
if (![[NSFileManager defaultManager] fileExistsAtPath:writeDirectoryPath])
[[NSFileManager defaultManager] createDirectoryAtURL:[NSURL fileURLWithPath:writeDirectoryPath] withIntermediateDirectories:YES attributes:nil error:nil];
NSString *currentDateString = [self tagString];
NSString *writeFilePath = [NSString stringWithFormat:@"%@/%@-%@.pfx",writeDirectoryPath,@"CSignature",currentDateString];
BOOL save = [CPDFSignature generatePKCS12CertWithInfo:cer password:@"123" writeFilePathtoPath:writeFilePath certUsage:CPDFCertUsageDigSig];