dwinshs.iss
はWinInet APIを使用します。このAPIを使用すると、未知のCAエラーを無視するには、InternetSetOption
functionを呼び出す必要があります。
これは、引数としてセキュリティフラグを持つ整数へのポインタを取るため、やや複雑です。 Inno Setupは整数へのポインタをサポートしていません。しかし、pointers to structures(あなたがコメントした通り)をサポートしています。したがって、整数を構造体にラップすることができます。
InternetSetOption
の代わりに、文字列の代わりに構造体を使用する代替名を宣言する必要があります(Inno Setupは汎用ポインタをサポートしていないため、1つの宣言で十分です)。
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 '[email protected] stdcall delayload setuponly';
など、それを使用します。
SecurityFlags.Value := SECURITY_FLAG_IGNORE_UNKNOWN_CA;
InternetSetOptionInt(
hRequest, INTERNET_OPTION_SECURITY_FLAGS, SecurityFlags, SizeOf(SecurityFlags))
は(hRequest
がdwinshs.iss
に割り当てられた後)。
代わりにプレーンHTTPを使用してください。証明書のエラーを無視するように設定されたHTTPSは、とにかく安全ではありません。
または、別のライブラリを使用してファイルをダウンロードしてください。私はまた、単なるHTTPリクエストを使用して使用して試みたが、それは、エラーコード6で失敗したが、場合関数のパラメータの
idpSetOption('InvalidCert', 'ignore');
無効数 'InternetSetOption' – yuval
:
Inno Download Pluginを有するすべての証明書のエラーを無視することができ私は正常に実行される有効な証明書を持つWebサイトを使用します。 HTTPリクエストが何とか証明書をチェックすることができますか? – yuval
そして私の状況を悪化させるHTTPSではなくHTTPSをブロックするクライアントがあります。 – yuval