gpt4 book ai didi

openssl - 如何使用 openssl 签署客户的 CSR?

转载 作者:行者123 更新时间:2023-12-04 12:09:40 32 4
gpt4 key购买 nike

我缺少一些关于使用 openssl 命令签署客户 CSR 的基本和明显的内容。

我有(模拟)两个组织,一个是证书颁发机构的组织(存在于加利福尼亚州),另一个是在 WA 州的客户组织。

我按照以下步骤使用 openssl 命令在 Linux 系统上创建了证书颁发机构。
http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php

我现在有两个文件
1. cakey.pem 包含 CA 的私钥。此私有(private)还与密码相关联。
2. cacert.pem 包含CA的自签名证书

接下来,我要签署客户的所有 CSR。华盛顿州的一位客户向我发送了一个文件 client-csr.pem。我正在阅读有关签署 CSR 的手册页和最后的示例。 http://www.openssl.org/docs/apps/ca.html

我正在尝试的命令和错误消息如下:我在 CA 的系统上运行这些命令,在我创建 cakey.pem(CA 的私钥)和 cacert.pem(CA 的自签名证书)的系统上

$ openssl ca -in demoCA/csrs/client-csr.pem -out client-cert.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
The stateOrProvinceName field needed to be the same in the
CA certificate (California) and the request (WA)

问题是为什么 CA 证书和客户端 CSR 的状态名称必须相同。

客户不在“加利福尼亚”,因此当他们创建 CSR 时,他们会输入自己的州名 (WA)。作为证书颁发机构,我已验证客户端确实在 WA 并且 CSR 文件确实来自他们。我想签署这个 CSR 并将证书返回给客户端。

最佳答案

解决了。谢谢dbasic。

在发生签名事件的 CA 系统上,
复制/etc/ssl/openssl.conf 并修改它并创建一个新的配置文件。签名时使用修改后的副本。

cp /etc/ssl/openssl.cnf  ./openssl-for-signing-csrs.cnf

并将“countryName”、“stateOrProvinceName”或“organizationName”修改为“supplied”。这表明证书应该使用来自 CSR 的值,并且不要尝试与证书匹配(人们会尝试“匹配”仅用于自签名,默认的 openssl.cnf 似乎是为自签名而制作的,并且不适用于 CA)
80,82c80,82
< countryName = match
< stateOrProvinceName = match
< organizationName = match
---
> countryName = supplied
> stateOrProvinceName = supplied
> organizationName = supplied

关于openssl - 如何使用 openssl 签署客户的 CSR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659197/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com