How to download a file using HTTPS connection using VBSCRIPT and by accepting all the certiifcates
14,446
ServicePointManager
is a .NET
class, so it can't be used in VBScript
. Try this instead:
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.setOption 2, 13056
You must use MSXML2.ServerXMLHTTP
here, because MSXML2.XMLHTTP
requests don't have the setOption
method.
And perhaps you shouldn't broadcast your questions. It's not very polite.
Author by
Kausty
Updated on June 04, 2022Comments
-
Kausty almost 2 years
I have a script which is able to download files from the https://mysite.com/xxx.zip but when it goes to a secured link, I want to accept the certificate. There is a huge problem here. I am not able to use "ServicePointManager.ServerCertificateValidationCallback" effectively.
Can anyone please help?
I also have the domain for the certificate site: *.mysite.com
code:
Const scriptVer = "1.0" Const DownloadDest = "https://mysite.com/xxx.zip" Const LocalFile = "F:\Testing\xxx.zip" Const webUser = "admin" Const webPass = "admin" Const DownloadType = "binary" dim strURL function getit() dim xmlhttp set xmlhttp=createobject("MSXML2.XMLHTTP.3.0") 'xmlhttp.SetOption 2, 13056 'If https -> Ignore all SSL errors strURL = DownloadDest Wscript.Echo "Download-URL: " & strURL 'For basic auth, use the line below together with user+pass variables above xmlhttp.Open "GET", strURL, false, WebUser, WebPass 'xmlhttp.Open "GET", strURL, false xmlhttp.Send Wscript.Echo "Download-Status: " & xmlhttp.Status & " " & xmlhttp.statusText If xmlhttp.Status = 200 Then Dim objStream set objStream = CreateObject("ADODB.Stream") objStream.Type = 1 'adTypeBinary objStream.Open objStream.Write xmlhttp.responseBody objStream.SaveToFile LocalFile objStream.Close set objStream = Nothing End If set xmlhttp=Nothing End function '======================================================================= ' End Function Defs, Start Main '======================================================================= ' Get cmdline params and initialize variables If Wscript.Arguments.Named.Exists("h") Then Wscript.Echo "Usage: http-download.vbs" Wscript.Echo "version " & scriptVer WScript.Quit(intOK) End If getit() Wscript.Echo "Download Complete. See " & LocalFile & " for success." Wscript.Quit(intOK) ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications Private Shared Function ValidateCertificate(sender As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) As Boolean return True End Function