问题描述
我正在尝试在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的直接子证书,则可以选择在末尾添加中间证书。