VBA - https响应文本解密

VBA - https response text decryption

在VBA中,我需要请求http消息并解析响应文本。 我已成功获得 http 状态为“200”的响应文本,但 body 已加密。 (headers 不是)所以我一直在尝试解密消息,但由于对 SSL 概念和编程技能的了解不足,我被卡住了。

With oRequest
    .Open "GET", sUrl, False
    .SetRequestHeader "Accept", "*/*"
    .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
    .SetRequestHeader "Connection", "Keep -Alive"
    '.SetClientCertificate ("HKEY_LOCAL_MACHINE/Software/Microsoft/SystemCertificates/CA/Certificates")   
    .Send 
    sResult = .GetAllResponseHeaders
    Debug.Print sResult
    sResult = .ResponseText
    Debug.Print sResult

上面的脚本是我写的。有了这个,我有一些问题。

1. 'SetClientCertificate()' 有必要吗?怎么才能成功获取到回复文字呢​​?

2。在VBA中,如何使用证书解码响应body

请让我知道我的误解,并给我任何解决问题的线索。

[+编辑]

在脚本中,有一行:

.SetRequestHeader "Accept-Encoding", "gzip , deflate"

我在问题中省略了这一行。因为我认为这个问题是关于 SSL 的,所以我故意删除了一些我猜想的不是真正必要的行。 (这是完全错误的)

去掉这条线,就可以了。

I've succeeded to get the response text with http status '200', but the body is encrypted.

这没有道理。在 HTTPS 中,所有内容都是加密的:请求 header 和 body 以及响应 header 和 body。我宁愿你得到解密的响应 header 和 body 但 body 可能是压缩的或者是你不认识的格式所以它看起来像你的加密.

'SetClientCertificate()' is necessary? How could I get the response text successfully?

如果服务器要求客户端使用客户端证书对自己进行身份验证,则需要这样做。大多数网站不需要这个。

In VBA, how to use certificate to decode the response body

你不能。你得到的 body 可能没有加密,或者至少没有用任何与 TLS (HTTPS) 连接相关的东西加密(见上文)。