【问题标题】:How to sign a certificate request using openssl?如何使用 openssl 签署证书请求?
【发布时间】:2015-07-29 06:13:40
【问题描述】:

为了测试,我正在尝试执行以下 3 个步骤:

  • 为“我自己的 CA 公司”生成 CA 证书
  • 为另一个实体“我的客户”生成证书请求
  • 使用 CA 证书签署请求

我在最后一步失败了(见下文)。我认为我的问题是我对我正在执行的步骤有错误的理解,但我无法弄清楚它是什么。

# generate self signed CA certificate
openssl req -x509 -days 2557 -newkey rsa:1024 -out ca-cert.pem -keyout ca-sec-key.pem

# for another entity, generate another private key and a signing request
openssl req -newkey rsa:1024 -out sub-request.pem -keyout sub-sec-key.pem

# the following fails:
# sign the request using the CA certificate and key
openssl ca -cert ca-cert.pem -keyfile ca-sec-key.pem -in sub-request.pem -out sub-cert.pem

错误:

The organizationName field needed to be the same in the
CA certificate (My Own CA Company) and the request (My Customer)

我不明白为什么 openssl 抱怨这些完全不同。我认为它们应该不同。

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
  • @jww 这并不完全是重复的,因为另一个问题询问了两种方法中哪一种适用于其他 OP,而我在这两种方法中的任何一种都没有成功。相反,我对其中一种方式和错误消息有疑问 - 因此是另一个问题 - 另一个问题没有涵盖。
  • @jww 这个问题是关于“程序员常用的工具”的。因此,它是主题。让我知道除了程序员还有谁会使用 openssl。当然不是想要签署电子邮件的最终用户。
  • 我很抱歉。阅读时,这听起来像是一个 Dev Ops 问题,您需要帮助使用 OpenSSL 命令。对于使用命令的帮助,例如 opensslls,超级用户通常更适合。

标签: openssl certificate signing pki


【解决方案1】:

很可能您的 OpenSSL 配置基于默认配置文件 (openssl.cnf),它限制了 organizationName DN 组件的值。在 CA 部分找到policy=<section_name> 条目并将organizationName=match 更改为organizationName=supplied,如下所示:

[ policy_match ] 
organizationName    = supplied 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    相关资源
    最近更新 更多