我正在尝试将 https 流量监控为可读的 HTML。
我已经从服务器下载了证书。
“在 Internet Explorer 中,我选择了证书并复制到文件,DER 编码的二进制 X.509 (cer)”
我运行这个命令它有效:
openssl x509 -inform der -in Test3.cer -out key.cert
我得到一个文件 key.cert,其中包含:
--开始证书。
...
有关信息,我运行此命令,得到有关该证书的漂亮输出:
openssl x509 -in key.cert -noout -text
根据文档,我需要一个 key.pem、private/key 文件。
因此我尝试运行他的命令,我想得到一个 der 输出格式。
openssl base64 -in key.cert -out 1.der
...然后我运行这个来获取 pem 文件,但出现此错误:
读取密钥时出错 6072:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行:pem_lib.c:648:预期:加密私钥
openssl pkcs8 -in 1.der -out temp.pem
---我也尝试过这个
$ openssl pkcs8 -topk8 -inform der -in 1.der -out temp.pem
unable to load key
2752:error:0D094065:asn1 encoding routines:d2i_ASN1_SET:bad class:a_set.c:190:
2752:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:
1315:
2752:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:ta
sn_dec.c:379:Type=RSA
2752:error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib:d2i_pr.c:99:
答案1
要解密流量,您需要私钥和证书。密钥存储在 Web 服务器上(希望是安全的),并与证书一起使用,以向您(用户)验证身份。
如果没有私钥,您所运行的命令将无法工作。上面的输出openssl base64 -in key.cert -out 1.der
告诉您这一点,它表示需要加密的私钥,而您为其提供的是证书。
如果您尝试解密您与您可以访问的 Web 服务器之间的通信,请从 Web 服务器获取私钥。如果 Web 服务器不是您的,那么您将无法解密通信 - 这就是 SSL/TLS 的重点。