The request was aborted: Could not create SSL/TLS secure channel.

Hi all,

I have an issue with the Rest API call where I need to provide the certificate (it is the authentication API). I have checked this and other forums, but I can not solve the issue  I was able to establish the connection in the Synchronization Editor editor and via Postman, but I have an issue in the VB script where I need this authentication call for some other operations. I tested the same script in my local environment and it worked fine. The version in my environment is 8.1.2, on the customer environment, where I am trying to establish script was version 8.1.1 but after the issue, we have updated it to 8.1.4. .NET version is on both systems 4.7.2, the only difference in the environment is that I have Visual Studio installed on mine (maybe there is a difference in the system dll version?). I am also attaching the code

Public Function CCC_POST_ApiRequestCert(ByVal ThumbPrint As String, ByVal URL As String, ByVal myDataJSON As String, ByVal Action As String) As String
	' cert prereq
    ServicePointManager.Expect100Continue = True

	ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12

	System.Net.ServicePointManager.ServerCertificateValidationCallback =
		Function(se As Object,
			  cert As System.Security.Cryptography.X509Certificates.X509Certificate,
			  chain As System.Security.Cryptography.X509Certificates.X509Chain,
			  sslerror As System.Net.Security.SslPolicyErrors) True

	Dim myReq As HttpWebRequest
	Dim myResp As HttpWebResponse

	Try
		myReq = DirectCast(WebRequest.Create(URL), HttpWebRequest)

		' GET cert
		Dim microcopCert As X509Certificate2 = Nothing
		Dim store As New X509Store(StoreName.My, StoreLocation.LocalMachine)
		store.Open(OpenFlags.[ReadOnly])
		microcopCert = store.Certificates.Find(X509FindType.FindByThumbprint, ThumbPrint, False)(0)
		myReq.ClientCertificates.Add(microcopCert)

        ' request
		myReq.Method = "POST"
		myReq.ContentType = "application/json"
		myReq.Accept = "application/json"

		myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myDataJSON), 0, System.Text.Encoding.UTF8.GetBytes(myDataJSON).Count)

		myResp = DirectCast(myReq.GetResponse, HttpWebResponse)

        ' pares token
		For Each cookie As String In myResp.Headers("Set-Cookie").Split({";"}, StringSplitOptions.None)
			If cookie.Contains("ss-id") Then
				Return cookie.Substring(cookie.IndexOf("=") + 1)
			End If
		Next
		Return String.Empty
	Catch ex As WebException
		Throw New Exception("Action: " + Action + Environment.NewLine + "Error: " + ex.Message)
	Catch ex As Exception
		Throw New Exception("Action: " + Action + Environment.NewLine + "Error: " + ex.Message)
	End Try

	Return String.Empty
End Function

Parents Reply Children
No Data