我对 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_enddate
default_ca
x509_extensions
或在网上在‘配置文件选项’下。
对于其他命令行操作,目前没有支持此功能的代码;您可以编写自己的应用程序来调用该库,或者由于 OpenSSL 是开源的,只需复制并修改它。