为什么有些 openssl 子命令采用 -config 选项而其他的则不采用?

为什么有些 openssl 子命令采用 -config 选项而其他的则不采用?

例如,req 有,但 x509 没有。

我还阅读了有关 OPENSSL_CONF 环境变量的信息。这会影响 x509 子命令吗?

答案1

最初,配置文件只是因为证书请求和颁发所需的参数相对复杂而需要明确指定。req在1.0.0 中添加了同样的功能,在 1.0.2 中添加了(但未记录)功能,对我来说没有明显的原因,可能只是为了时尚。最初是关于显示数据的,大多数不需要配置(见下文);一些最小的catssrpx509类似 CA 的特征随着时间的推移,它们不断添加,并且(仅)它们使用配置格式的文件进行扩展;这由-extfile和标识必须明确

然而,从 0.9.8 开始(比我能方便地检查的更早),出现了一个概念自动配置对于命令行子命令以及使用 libcrypto 的应用程序,即使没有特定于操作或特定于程序的配置项。这在正确安装了 OpenSSL 的 Unixy 系统上的手册页 config(5) 中进行了描述,或者在网上并受 envvar 影响OPENSSL_CONF

它从配置开始自定义 OID 可以很好地应用x509和 ENGINE 设置如果您使用硬件密钥(进行签名)或 GOST 密钥(完全使用),则可能会出现这种情况。默认 FIPS 模式(在未为其编码的应用程序中)是在 1.0.1 中期添加的,SSL/TLS 的设置(或默认值)是在 1.1.0 中添加的。

相关内容