【问题标题】:How to generate a proof of possesion for a X509 certificate using OpenSSL?如何使用 OpenSSL 为 X509 证书生成所有权证明?
【发布时间】:2018-05-14 18:45:15
【问题描述】:

我需要生成所有权证明,用我的私钥签署验证码。

我在 Stack Overflow 中没有找到与此相关的问题,我也没有在 Internet 上找到一些参考资料。我正在关注this tutorial,但我想使用 OpenSSL。

我的验证码和一个 X509 证书有关,像这样:

7A69A4702DA903A41C3A5BC5575A8E3F49BEC5E5BA2D4CE1

【问题讨论】:

  • 使用 OpenSSL 有什么特别的原因吗?
  • 我只是不想使用教程中提到的脚本,我想学习如何使用 OpenSSL,@Crypt32 来做到这一点。顺便说一句,教程说该脚本基于 OpenSSL。 =)
  • 另一个原因,@Crypt32,是我使用的是 Ubuntu。所以,我想使用 openssl(终端)来做到这一点。
  • 啊,好的。没看到那个例子是基于 OpenSSL 的(奇怪)。

标签: openssl certificate ssl-certificate x509certificate x509


【解决方案1】:

我从 Azure 支持团队得到了答案。

我已经有了我的根密钥和 X509 证书,通过以下命令生成:

openssl req -x509 -newkey rsa:2048 -keyout root_private.pem -nodes -out root_cert.pem

然后,我需要生成验证证书...

  • 创建验证密钥:

    openssl genrsa -out verification.key 2048
    
  • 创建验证证书:

    openssl req -new -key verification.key -out verification.csr
    

在创建验证证书时,需要将获取的验证码(7A69A4702DA903A41C3A5BC5575A8E3F49BEC5E5BA2D4CE1)指定为“Common Name”证书字段。

现在,只需使用以下命令创建所有权证明:

openssl x509 -req -in verification.csr -CA root_cert.pem -CAkey root_private.pem -CAcreateserial -out verificationCert.pem -days 1024 -sha256

如果我没记错的话,最后一条命令会使用根私钥对verification.csr 进行签名,验证码为Common Name。最后,verificationCert.pem 可以用作占有证明

【讨论】:

  • 当我用一些 UUID 指定 CN 时,它会自动在 CN 后面添加“\x16”,例如“CN=\x16234234234234234”。你有什么想法吗?
  • @nolines ,如您所见here\x16 是控制字符^V 的ASCII 十六进制表示。我怀疑您正在使用 CTRL+V 粘贴您的 UUID。尝试使用其他方法输入代码或手动输入。
  • openssl x509 -req -in verification.csr -CA root_cert.pem -CAkey root_private.pem -CAcreateserial -out verificationCert.pem -days 1024 -sha256 从 -verification.csr 更改为 verify.csr
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多