如何使用 openssl 签署证书请求?

How to sign a certificate request using openssl?

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

我在最后一步失败了(见下文)。我觉得我的问题是我对自己做的步骤理解有误,但是想不通到底是什么。

# 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 抱怨这些完全不同。我觉得应该是不一样的。

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

[ policy_match ] 
organizationName    = supplied