在启动过程中如何向mitmdump提供证书密码

问题描述

我正在尝试在ubuntu中自动运行mitmdump二进制文件。我正在使用命令./mitmdump --cert *=mycert.pem向其提供自行生成的证书。但是help并没有定义任何提供私钥密码短语的命令。在启动过程中如何提供密码

我尝试使用命令./mitmdump --cert *=mycert.pem <<< "mypassword"(如建议的here)向其提供输入,但是它仍然询问我的PEM密码短语。

如果有帮助,我正在使用Runtime.getRuntime().exec(COMMAND)从Java代码开始mitmdump进程。不用密码生成证书实际上是不可能的。

解决方法

mitmproxy documentation所示,mycert.pem必须同时包含证书和私钥:

-----BEGIN PRIVATE KEY-----
<private key>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<cert>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<intermediary cert (optional)>
-----END CERTIFICATE-----

如您所见,Mitmproxy期望使用BEGIN PRIVATE KEY而不是BEGIN ENCRYPTED PRIVATE KEY,因此所提供的密钥根本不受密码保护。

如果提供的证书不是根CA证书或已知根CA的直接子证书,则可以选择在末尾添加中间证书。