gpt4 book ai didi

ssl - Inno 安装程序 : Ignore SSL Certificate errors using the third party tool DwinsHs

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:30 25 4
gpt4 key购买 nike

我使用名为 DwinsHs 的第三方工具用于 Inno Setup。

此第三方工具使我能够在安装过程中下载文件。

我想使用函数 DwinsHs_ReadRemoteURL 发送 HTTPS 请求。
我希望请求忽略所有 TLS (SSL) 证书错误,但我找不到方法。

此第三方工具是开源的,此功能在 dwinshs.iss 中定义,您可以通过下载第三方工具获得。

如何使用第三方工具中的 DwinsHs_ReadRemoteURL 忽略 HTTPS 请求中的所有 SSL 证书错误 DwinsHs

最佳答案

dwinshs.iss 使用 WinInet API。使用此 API,要忽略未知的 CA 错误,您必须调用 InternetSetOption function

这有点复杂,因为它需要一个指向带有安全标志的整数的指针作为其参数。 Inno Setup 不支持指向整数的指针。但它支持 pointers to structures (正如您所评论的)。因此,您可以将整数包装到一个结构中。

您需要为采用结构而不是字符串的 InternetSetOption 声明一个替代名称(同样因为 Inno Setup 不支持通用指针,否则单个声明就足够了)。

const
INTERNET_OPTION_SECURITY_FLAGS = 31;
SECURITY_FLAG_IGNORE_UNKNOWN_CA = $00000100;

type
TInteger = record
Value: Integer;
end;

function InternetSetOptionInt(
hInet: HINTERNET; dwOption: DWORD; var lpBuffer: TInteger; dwBufferLength: DWORD): BOOL;
external 'InternetSetOptionA@wininet.dll stdcall delayload setuponly';

像这样使用它:

SecurityFlags.Value := SECURITY_FLAG_IGNORE_UNKNOWN_CA;
InternetSetOptionInt(
hRequest, INTERNET_OPTION_SECURITY_FLAGS, SecurityFlags, SizeOf(SecurityFlags))

(在 dwinshs.iss 中分配了 hRequest 之后)。


或者改用纯 HTTP。 HTTPS 设置为忽略证书错误无论如何都不安全。


或者使用不同的库来下载文件。

Inno Download Plugin 可以忽略所有证书错误:

idpSetOption('InvalidCert', 'ignore');

关于ssl - Inno 安装程序 : Ignore SSL Certificate errors using the third party tool DwinsHs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com