使用 OpenSSL 创建多级证书链的问题

使用 OpenSSL 创建多级证书链的问题

我正在创建三级证书,即 Root->A->B 。 A 由 root 签名,而 B 由 A 签名。证书是使用适用于 Windows 的 OpenSSL 命令行实用程序生成的。证书已成功创建,我已在 Win7 中安装它们。现在问题出在证书“B”上。附上屏幕截图 在此处输入图片描述

在此处输入图片描述

我正在按照以下博客中提供的步骤来创建根和下属,并让根对下属进行签名。

blog.didierstevens.com/2015/03/30/howto-make-your-own-cert-with-openssl-on-windows/。

有人能帮我解决我做错的事情吗?基本上,我正在尝试创建证书链并导航到给定任何中间证书的根证书。

答案1

在您用于 CAA请求的 OpenSSL 配置文件中,您应该有一个basicConstraints如下所示的内容:

[req]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
organizationalUnitName  = Test Certificate Authority
commonName = Test Subordinate CA

[ v3_req ]
basicConstraints = critical; CA:TRUE

Root 也一样。您不应该在B的请求中设置它。

Root或者,您在签名自身和 CA 时使用的 OpenSSL 配置文件A应该具有:

[ ca ]
default_ca      = CA_default

[ CA_default ]
x509_extensions = x509_ext

[ x509_ext ]
basicConstraints = critical; CA:TRUE

更多信息CA:TRUE可以从 OpenSSL 中获取文档以及来自RFC 5280第 4.2.1.9 节

相关内容