如何在 OpenSSL 配置文件中指定证书的有效性?

如何在 OpenSSL 配置文件中指定证书的有效性?

我对 OpenSSL 还不太熟悉,我正在尝试使用 OpenSSL 指定一个有效期仅为一小时的证书。我已经使用openssl ca-startdate选项成功完成了此操作-enddate,但我想知道是否可以在配置文件中设置有效性以供使用openssl req?如果可以,您能举个例子吗?

我尝试使用类似的语法:

privateKeyUsagePeriod = ASN1:SEQUENCE:privateKeyUsagePeriod

[privateKeyUsagePeriod]

notBefore = IMPLICIT:0,GENERALIZEDTIME:20170501000000Z

notAfter = IMPLICIT:0,GENERALIZEDTIME:22910501000000Z

此语法似乎不适用于有效性。提前感谢大家给我的任何指导。

答案1

首先,您的 PrivateKeyUsagePeriod 示例是错误的;notAfter 应该标记为 1 而不是 0。尽管实际上没有软件会查看 PKUP,但这个错误可能并不重要。

更实质上,PKUP 是一种扩展,而 X509v3 扩展使用 OID+可变结构,这要求 OpenSSL 允许基本上任何 ASN.1 类型,以便支持未来的添加而无需更改代码。有效性是固定部分的一部分(来自 v1),由特定代码实现,并且无论如何都不是同一类型(未标记、不是 OPTIONAL 和 CHOICE{UTCTime,GeneralizedTime})。

您可以在配置文件中名为 的部分(不是名为 的部分)openssl ca使用default_startdate和来代替命令行选项。请参阅系统的手册页default_enddatedefault_cax509_extensions或在网上在‘配置文件选项’下。

对于其他命令行操作,目前没有支持此功能的代码;您可以编写自己的应用程序来调用该库,或者由于 OpenSSL 是开源的,只需复制并修改它。

相关内容