首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字签名生成

数字签名生成
EN

Security用户
提问于 2022-10-10 02:58:23
回答 1查看 157关注 0票数 1

简而言之,我需要将一个数字签名放到我的Yubikey的9c槽中。如果从Yubikey生成证书,则私钥不可导出。因此,我试图从计算机本身生成pfx文件,这样我就可以将多个密钥导入到多个密钥中,而不需要多个不同的证书。

我花了6+几个小时在谷歌上,这一切都变得令人困惑。我想我想要的是一个“自我签名”的数字签名证书。

通过提供简单的参数,我遇到了使用certreq -new .\certname.txt的方法。

但我唯一知道的是我需要在我的档案里:

代码语言:javascript
复制
[NewRequest]
Subject = "CN=Test Sign, E=email@address.com"
KeyLength = 2048
HashAlgorithm = Sha256
KeyUsage = 0x0080 ; Digital Signature
RequestType = Cert
ValidityPeriodUnits = 1
ValidityPeriod = Years

但我不知道这里还有什么能让它成为一个合适的签名证书。

我想要能够使用这个签名文件在任何项目,我要去。

我与Acrobat混在一起,您可以在该程序中创建一个数字sig;但是它将OID限制在1.2.840.113583.1.10,这是为Adobe设计的。

之后,我找到了一种方法,它说可以通过OpenSSL (我安装的)生成一个;但是我不太确定我需要采取哪些步骤。我只知道我需要RSA 2048 / SHA256。我甚至不确定我读过的文档是否OpenSSL是一条正确的路线。因为我需要生成密钥,然后将其导出到pfx / p12,以便将其导入智能卡。

如果能帮助结束这场噩梦,我们将不胜感激。

EN

回答 1

Security用户

发布于 2022-10-10 06:49:25

如果您想成为一个CA或者只是生成您的自签名证书,有一个建议为您,使用OpenSSL来完成。

您可以通过以下操作生成自签名的结束条目证书:

  1. 为X.509证书请求生成私钥(以下简称"CSR"):

openssl genrsa -out /path/to/privkey.pem 2048 # Generate RSA private key with 2048 bits

  1. 为CSR和X.509证书扩展名修改OpenSSL配置文件:

(在我的习惯中,我通常生成一个空白的CSR并在签名证书中添加扩展)

(1)。打开文件,创建一个新的部分,您可以给它取一个名称(比如[v3_mycert])。

(2)。将这些行添加到新的部分。如果要在"#“之后添加扩展名,请删除”#“。

代码语言:javascript
复制
#authorityInfoAccess=OCSP;URI:http://www.example.com, #caIssuers;URI:http://www.example.com/ca.crt
#crlDistributionPoints=crlDistributionPoint0_sect
extendedKeyUsage=1.2.840.113583.1.1.10
keyUsage=critical,digitalSignature, nonRepudiation, dataEncipherment
subjectKeyIdentifier=hash
basicConstraints=critical,CA:FALSE
authorityKeyIdentifier=keyid

[crlDistributionPoint0_sect]
fullname=URI:http://www.example.com/foo.crl

该部分的格式为KEY=VALUE。可以用扩展名和OID替换密钥。该值必须与键匹配,否则可以由OpenSSL识别。(比如DER:05:00)。我想你能理解这些配置线。

  1. 生成空白CSR:

openssl req -new -key /path/to/privkey.pem -out /path/to/cert.csr -addext v3_mycert

并键入证书的主题信息。注意:如果不更改OpenSSL配置文件中的设置,则必须输入所有主题。

  1. 自行签署CSR,您将获得证书:

openssl x509 -req -days 365 -in /path/to/cert.csr -signkey /path/to/privkey.pem -out /path/to/cert.crt

在OpenSSL (1.1.1或新的)中,默认的算法是SHA256。"RSA“是您的密钥算法,"2048”是您的密钥位。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/265387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档