Delphi TRestClient SSL Handshake Error - delphi

I am trying to consume a REST service on Amazon with Delphi XE6. At design time I add TRestClient, TRestRequest, TRestResponse components and set BaseURL property. When I execute the request, I get the following error:
While trying to execute the request the following error occured: REST request failed: Error connecting with SSL.
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Tried searching google, there were some suggestions to update Indy libraries, but something went horribly wrong and I had to spent some hours uninstalling everything Delphi related and reinstall.
So, it would be much appreciated if someone could guide me to right direction about how to resolve this error.
Maybe I can bypass TRest* components and use Indy components directly but I am not very experienced about which Indy components I would need.
Thanks in advance.

Related

Troubleshoot "SSL Handshake errors" in Indy

I use Indy TidHTTPServer and TidServerIOHandlerSSLOpenSSL on my server component to handle HTTPS request for command & control.
There are situations where - without any logged errors on the server - client receive an error "SSL handshake failed". I see no reasons on the server and - funny enough - fixes itself sometimes after some time.
Where can I step into the Indy components to see where the problem is? Which events can I use to maybe see something?
Update1 (29.05.2021): An exeption I found throught he handlers suggested by Remy Lebeau is "Error accepting connection with SSL. EOF was observed that violates the protocol". I still cant tell what is causing this, though...
I have had this (or similar) errors in the past when I forgot to put the OpenSSL dll files in the same folder as the executable. You need ssleay32.dll and libeay32.dll.
You can find them on the Indy page (link at the very bottom): https://www.indyproject.org/download/ssl/

Installing FBAudienceNetwork (5.10.1) failed

I want to update cocoapod but it failed every time. Did anyone face this problem, please help!
Error shows here
Same issue here
with same
curl: (22) The requested URL returned error: 500 Internal Server Error
how they explain it:
Thanks for reporting. We are observing some issues with CDN where FAN
binary is hosted and passed this on to relevant team to have a look
and resolve.
And user, who was facing problem – was successful to install it after several attempts, finally.
Read, try, update me what's going on.
Changing the internet provider fixed the issue for me.

Got TLS error trying to find package cupertino_icons at https://pub.dartlang.org

I am getting below error-
Got TLS error trying to find package cupertino_icons at https://pub.dartlang.org.
pub upgrade failed (69) -- attempting retry 2 in 2 seconds...
My understanding is I am on office network(VPN) thats why I am getting this error. I have tried multiple options and I have seen multiple multiple post but no post shows the exact way of doing things. So I will post my all questions here, if anyone help it will be really helpful for all persons who are going to start work on flutter
1) How to set and create a self-signed certificate?
Do we need to create a self signed certificate for pub.dartlang.org domain?
have tried to create a certificate by using this (https://www.akadia.com/services/ssh_test_certificate.html) use domain as pub.dartlang.org, is this a correct way or how to do it?
2)I have put DART_VM_OPTIONS=--root-certs-file=C:\Users\dev\certs\chrome.cer as my certificate but still issue not resolved.
3)If I have to set https_proxy? What are the values for hostname and port in VPN? How can i find these values?
Flutter app behind corporate firewall throws TLS error during packages get
4) To solve this issue I have seen the reference of this comment
https://github.com/dart-lang/pub/issues/1882#issuecomment-415588527
How to implement this?
I have tried multiple things, if anyone can help how to bypass this error that will help many persons, I think.
I have same error on MACbook when running Flutter Create. When I opened the web-browser to access pub.dartlang.org, there is an error message that says: Your Clock is set incorrectly.
Somehow my date was set to a week ago. Fixing the date resolve the TLS issue.
It can be a network error or some kind of permission issue. I was facing same issue. In my case it was due to network permissions in our organisation. I tried with some another network which has full access and my issue was resolved.
It might be problem with restricted network.
You can set proxy
systemProp.http.proxyPort=PortNumber
systemProp.https.proxyPort=PortNumber
systemProp.http.proxyUser=User
systemProp.https.proxyUser=User
systemProp.http.proxyPassword=Password
systemProp.https.proxyPassword=Password
systemProp.https.proxyHost=YourHost
systemProp.http.proxyHost=YourHost
systemProp.http.nonProxyHosts=YourNonHost
systemProp.https.nonProxyHosts=YourNonHost
It might be a problem with the restricted environment variables sequence. You can set bash_profile:
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PUB_HOSTED_URL=https://pub.flutter-io.cn
keynote:
"FLUTTER_STORAGE_BASE_URL" is in front of "PUB_HOSTED_URL"
I was also getting the same error, after upgrading my flutter. I was connected to the internet but my clock was not on correct time. After I have corrected the time on my pc, the error was solved.

Indy "Connection Reset by Peer" Err. 10054 on Specific Website

I am encountering some problems using some code that worked for ages involving Indy and the download of a web page. I use RAD Studio 10.2 Tokyo.
The web page is as follows:
https://donet.rfi.it/RFIPlatform/showDoc.do?compartimentoHidden=AN&docTypeHidden=CC
The code I am using is part of an application which has the same code since 2011 and it always worked well. The code is as follows:
IDHTTP1.Get('https://donet.rfi.it/RFIPlatform/showDoc.do?compartimentoHidden=AN&docTypeHidden=CC');
I am getting a "Connection Reset by Peer 10054" error since the website went down, some days ago, and when it came up again, the code did not work anymore.
The aforementioned web page can be called from the browser, can even be downloaded with WGET, but Indy is failing.
I tried to play with various options (Cookie Handling, Handle Redirects, HTTPOptions, etc...) and I also updated the SSL libraries to 1.0.2q (Indy cannot use OpenSSL 1.1.0 yet), but the whole thing just doesn't want to work.
Can someone help me figure out what is going on? It has to be for sure something on the website, since the code I use is the same since 2011 and it has always worked. And before that, the same code worked in a similar application since 2008.
Indy's TIdSSLIOHandlerSocketOpenSSL component enables only TLS 1.0 by default. The website in question (https://donet.rfi.it) does not accept TLS 1.0 anymore (probably why it went offline, to update its software), it will accept only TLS 1.1+ now.
TIdHTTP is able to successfully establish a TCP/IP connection to donet.rfi.it:443, but as soon as TIdSSLIOHandlerSocketOpenSSL sends a TLS 1.0 handshake request, the server forcibly closes the TCP connection. You are getting the "connection reset by peer" error while TIdSSLIOHandlerSocketOpenSSL is trying to read the server's handshake response.
You need to configure TIdSSLIOHandlerSocketOpenSSL to enable TLS 1.1 and/or 1.2. You can do that via its SSLOptions.SSLVersions property. Then TIdHTTP.Get() will work again (I tested it).

Delphi Indy IdMappedPortTCP

Im using Delphi XE 5/6, default Indy version, Windows 7. IdMappedPortTCP (component put on Form) redirect local stream from FFmpeg to Twitch.tv and always near 2 hours of streaming i have IdMappedPortTCP1ExceptionSocket Error # 10053
Software caused connection abort. Tried TCPRelay and no problems so i guess something must be wrong in my app. Thanks for suggestions.
10053 is a network error. Most likely a firewall or router is cutting the connection after it is idle for too long. I would try using Indy's TIdEventStream class as explained in the answer to this post:
How to avoid getting an error 10053 (WSAECONNABORTED) if a HttpGet operation in Android is lasting too long?

Resources