从证书的subject distinguished name 字段中的emailAddress 中提取的电子邮件属性。
您可以使用 openssl 进行测试以生成自签名证书(然后您可以生成带有 emailAddress 的 CSR 并发送到证书颁发机构以生成有效的最终实体证书)。要对其进行测试,您可以执行以下步骤:
使用follow openssl命令生成自签名证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
然后您将被要求输入以下参数(全部用于证书的主题):
为避免出现此提示,您可以在上一个命令中使用-subj 直接指定subject,如下所示:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj "/C=ES/ST=58/L=Barcelona/O=yourOrgName/OU=yourDept/CN=yourAppName/emailAddress=myEmail@test.com"
现在您可以使用以下命令从生成的密钥和证书生成p12(或pfx):
openssl pkcs12 -export -out myTestWithMail.pfx -inkey key.pem -in cert.pem
现在您有一个p12 (myTestWithMail.pfx),您可以使用以下signtool 命令来签署exe 或dll。例如,我签署notepad++.exe(如您在问题中链接的示例):
signtool.exe sign /f C:\Users\Albert\myTestWithMail.pfx /p 1234 "C:\Program Files (x86)\Notepad++\notepad++.exe"
请注意,/f 是您的签名密钥的路径,/p 是您的密钥的密码。
现在您可以在您签名的文件中看到电子邮件:
所以最后,如果您需要来自证书颁发机构的证书,您必须生成CSR,指定emailAddress,例如使用openssl 命令:
openssl req -new -newkey rsa:2048 -nodes -out yourAppName.csr -keyout yourAppName.key -subj "/C=ES/ST=58/L=Barcelona/O=yourOrgName/OU=yourDept/CN=yourAppName/emailAddress=myEmail@test.com"
或者不指定-subj参数,并在提示时输入正确的主题专有名称值:
openssl req -new -newkey rsa:2048 -nodes -out yourAppName.csr -keyout yourAppName.key
希望这会有所帮助,