如何创建用于测试的旧版(v1 或 v2)X.509 证书

use*_*805 6 legacy ssl openssl x509

我必须针对新代码编写一个测试用例,以确保 X.509 证书是版本 3,但我需要在测试期间使用一些遗留 (v1/v2) 证书来验证代码是否有效。

我正在尝试在 Mac 上使用 openssl 生成证书。我得到的只是 v3 证书。

我已经通读了 openssl 联机帮助页,但没有看到有关创建 v1 或 v2 证书的任何信息。

除了在旧硬件上设置旧操作系统并安装旧版本的 openssl 之外,是否有生成旧证书或将 v3 证书转换为 v1/v2 的任何想法?

小智 7

版本 1 和版本 3 证书之间的主要区别是版本 3 中添加了证书扩展。

查看 OpenSSLca命令文档。该-extensions section选项的文档解释道:

配置文件中包含颁发证书时要添加的证书扩展的部分(默认为 x509_extensions,除非使用 -extfile 选项)。如果不存在扩展部分,则创建 V1 证书。如果扩展部分存在(即使它为空),则会创建 V3 证书。有关扩展部分格式的详细信息,请参阅:w x509v3_config(5)手册页。

要创建版本 1 证书,请将 openssl 命令指向不带扩展名部分的配置文件。删除该部分的快速方法是注释掉或删除读取的行x509_extensions = <...>

然后,您应该能够通过运行常用命令来生成版本 1 证书。例如:

openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr -config /path/to/config-file
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Run Code Online (Sandbox Code Playgroud)