在什么情况下,您会将 openssl ca 的 `unique_subject` 设置为 yes?

Min*_*iMe 6 openssl ca

默认情况下unique_subject设置为yes,这会阻止您使用相同的专有名称签署多个证书。尝试签署此类证书将导致出现以下错误消息。

failed to update database
TXT_DB error number 2
Run Code Online (Sandbox Code Playgroud)

然而,允许重复 DN 有一个明确的用例,即为依赖方颁发具有延长到期日期的证书。例如,一个网站的证书需要在几个月后刷新([1]中已经提出了类似的论点)。在不更改设置的情况下,如果吊销现有证书,则只能颁发具有相同 dn 的新证书。但您可能想给网站所有者一段宽限期,在此期间两个证书都有效。我遇到的唯一其他选择是更改 dn 中与证书不太相关的内容(例如 OU)[2]。

openssl 文档 [3] 有一个条目,unique_subject其中建议选择默认值以便与旧版本兼容。该页面还提到应设置此值no以使 ca 翻转更容易。这对我来说值no是完全可以的,也许应该是默认值。

可以找到对此属性的许多参考,并且通常建议将此值设置为no(在 openssl.cnf 和 index.txt.attr 文件中)[1、2、3、4,等等]。我只发现一个地方有人建议将其保留yes或至少不太关心其实际价值[5]。但是,在那条线索中,只给出了一个空白的声明:

For the use case of a VPN, as EasyRSA was originally intended, the current setting is
best.
Run Code Online (Sandbox Code Playgroud)

是吗?为什么?

我了解该选项的作用以及如何使用它。我找不到的是早期违约的合理性yes

openssl ca 是否尝试使用此默认值解决一些安全问题?
颁发两个具有相同 dn 的证书有哪些风险?
设置时有哪些需要遵循的做法吗unique_subject=no
是否有充分的理由将该值保留为默认设置?

简而言之,是否有支持阻止具有相同 dn 的多个有效证书的论点?

[1] https://github.com/OpenVPN/easy-rsa/issues/40#issuecomment-56191531
[2] https://serverfault.com/a/810608 (在https://serverfault.com/上回答)questions/810557/how-do-i-issue-multiple-certificates-for-the-same-common-name )
[3] https://www.openssl.org/docs/man1.1.1/man1/openssl-ca .html
[4]如何向您的证书颁发机构签署证书签名请求?
[5] https://github.com/OpenVPN/easy-rsa/issues/40#issuecomment-150035723

Tox*_*iro 1

我认为您已经在 OpenSSL 手册页 [3] 中得到了答案:

默认值为 yes,以与旧版本(0.9.8 之前)的 OpenSSL 兼容。但是,为了使 CA 证书更容易更新,建议使用值 no,特别是与 -selfsign 命令行选项结合使用时。

还建议将默认设置为“是”,甚至完全删除它(使其始终为“是”)。目前计划在“Post 3.0.0”中进行:https ://github.com/openssl/openssl/issues/5451

提议删除它的 Richard Levitt 与 2004 年引入它的人是同一个人:https ://www.openssl.org/news/cl111.txt (0.9.7c 和 0.9.7d 之间的更改 [2004 年 3 月 17 日]

由于 OpenSSL 甚至建议将其设置unique_subject为“否”,因此绝对不会产生安全隐患。人们只能推测为什么默认值为“是”。可能在早期,没有太多考虑滚动证书和实时撤销列表。