目录
这都是一个问题,基于项目https://github.com/bogdanfinn/tls-client封装后使用自定义指纹后报错。
attention our ja3 defines ExtensionCompressCertificate but you did not specify certCompression
该问题存在于https://github.com/Sahil1337/node-tls-client,
https://github.com/rawandahmad698/noble-tls,
https://github.com/FlorianREGAZ/Python-Tls-Client。
第一个是因为我也基于他移植了,发现了问题。后面2个是项目中有open issues 提到该问题。
如报错信息所说的,使用了证书压缩拓展,但又没设置压缩算法。原因是 自定义 TLS client 时,certCompressionAlgo 参数名称有误,导致值未正确传递。
在bogdanfinn/tls-client 文档中,Custom TLS-Client 参数信息:
{
//错误的
// "certCompressionAlgo": "",
// 这个写法才是对的。
"certCompressionAlgos": [""],
"connectionFlow": 0,
"h2Settings": null,
"h2SettingsOrder": null,
"headerPriority": null,
"ja3String": "",
"keyShareCurves": null,
"priorityFrames": null,
"alpnProtocols": null,
"alpsProtocols": null,
"ECHCandidatePayloads": null,
"ECHCandidateCipherSuites": null,
"pseudoHeaderOrder": null,
"supportedDelegatedCredentialsAlgorithms": null,
"supportedSignatureAlgorithms": null,
"supportedVersions": null
}
而 bogdanfinn/tls-client 代码库里的最新例子是正确的,而文档里面是错误的。
我猜应该是某个版本更新。修改了变量名,支持多个加密算法。但是文档未即时更新,而引用的项目在未未更新代码的情况下直接下载并用新的链接库,就会触发该问题。