我想在 openssl CMP CLI 中启用跟踪级别日志记录,以便打印 HTTP 请求/响应标头详细信息。
我尝试了以下方法,但没有成功。
./config 启用跟踪
除了上述 2 之外,还在 CLI 中传递了详细级别 8(即跟踪)来打印跟踪级别日志,但最终又退回到详细级别 7 的调试。
编辑:如何从 CLI 检查跟踪是否已启用?
从您的问题中不清楚您是否正在使用 OpenSSL CMP 命令行应用程序,或者您是否正在编写自己的使用 OpenSSL CMP API 的应用程序。
无论哪种方式,您都需要在编译时启用“跟踪”,就像在 (1) 中所做的那样作为先决条件。然而,这本身还不够。
如果使用命令行应用程序,则应使用
-verbosity
选项设置所需的详细级别。请参阅此处的手册页:
https://www.openssl.org/docs/man3.0/man1/openssl-cmp.html
如果您正在编写自己的应用程序,那么您需要使用跟踪 API 来设置跟踪日志记录。查看本页描述的功能进行设置:
https://www.openssl.org/docs/man3.0/man3/OSSL_trace_set_channel.html
OpenSSL 跟踪工具使用起来相当尴尬,并且迄今为止其在 CLI 级别的使用记录很少。昨天,我自己很难重新发现如何在运行时使用它(与其他一些 OpenSSL 应用程序一起使用)。
这就是为什么我确保对于 CMP 功能本身,有一个不同的跟踪选项,该选项有充分的记录,并且可以轻松使用而无需重新构建:上面已经提到的
-verbosity <level>
选项。
为了在 CLI 级别跟踪 HTTP 传输(对于 CMP 或任何其他 OpenSSL 应用程序),您需要使用
enable-trace
选项自行配置和构建 OpenSSL 和 适当设置 OPENSSL_TRACE
环境变量,例如像这样的例子:
OPENSSL_TRACE=HTTP apps/openssl cmp
请注意,我确实为 CMP 记录了这一点 - 请参阅
man openssl-cmp
:
If OpenSSL was built with trace support enabled
and the environment variable OPENSSL_TRACE includes HTTP,
the request and response headers of HTTP transfers are printed.