# Error, sslv3 alert handshake failure

**URL:** <https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478>\
**Category:** General\
**Created:** [27 March 2019 05:49 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478 "2019-03-27T05:49:31Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 05:49 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/1 "2019-03-27T05:49:31Z")

</div>

Dear all, I have the following error in my https request node "sslv3 alert handshake failure" when I inject from TimeStamp. ![error](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/c/ca7d41566768aee5cf66d658fd8fdd6a833b7f65.jpeg)

---

<div class="post-metadata">

**Author:** ![ukmoose](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ukmoose/32/13_2.png) [@ukmoose](https://discourse.nodered.org/u/ukmoose)\
**Post date:** [27 March 2019 06:09 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/2 "2019-03-27T06:09:34Z")

</div>

I edited the title of your post to describe the error. as 95% of posts are about someone needing help

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 08:47 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/4 "2019-03-27T08:47:37Z")

</div>

Does the url you are requesting work if you use it in a browser? If yes then post the failing flow here please.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [27 March 2019 09:07 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/6 "2019-03-27T09:07:11Z")

</div>

Have you tried a google search for the error message in the original question? I can find lots of results with various suggestions.

For example, using http where you should be using https (or the other way around) in the url.

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 09:09 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/7 "2019-03-27T09:09:49Z")

</div>

it's a secured site so 'HTTP' is suppose to be used and the same url works fine with scripting languages for API calls

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 09:12 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/8 "2019-03-27T09:12:43Z")

</div>

without passing access token in the url it won't work in browser

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 09:32 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/9 "2019-03-27T09:32:49Z")

</div>

Post the failing flow and a code snippet from the working scripting language call.

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 09:39 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/10 "2019-03-27T09:39:00Z")

</div>

Here is my python scripting code for POST method,

import requests  
import json

#Disable warnings  
requests.packages.urllib3.disable\_warnings()

apic\_em\_ip = "[https://sandboxapicem.cisco.com/api/v1/ticket](https://sandboxapicem.cisco.com/api/v1/ticket)"

def get\_token(url):

```
#Payload contains authentication information
payload = { "username": " *********", "password": "**********" }

#Header information
headers = {"content-type" : "application/json"}

#Combine URL, API call and parameters variables
response = requests.post(url, data=json.dumps(payload), headers=headers).json()

# Return authentication token from respond body
return response["response"]["serviceTicket"]

```

def main():

```
#Assign obtained authentication token to a variable. Provide APIC-EM's URL address
auth_token = get_token(apic_em_ip)
print("\n")		
print("Service Ticket:", auth_token)

```

if **name** == " **main**":  
main() ![error](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/3/3073e9971cba717eff47a8acf6e37a275853372c.jpeg)

I have attached the error flow screenshot along with this reply

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 10:35 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/11 "2019-03-27T10:35:58Z")

</div>

And the failing flow?

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 10:39 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/12 "2019-03-27T10:39:56Z")

</div>

What is failing flow? what am i suppose to provide.. please explain

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [27 March 2019 10:44 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/13 "2019-03-27T10:44:46Z")

</div>

I don't think providing a full flow here will be instructive. This will come down to the specific details of the url you are using the in the HTTP Request node.

Have you looked at the google search results for the original error message?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 10:45 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/14 "2019-03-27T10:45:11Z")

</div>

You have a node-red flow that you think should work but doesn't. If possible reduce that to a minimum for test purposes, possibly just an inject node and the request node and a debug node to show the result if necessary. Then mark those nodes and Export them to the clipboard using Ctrl+E or Export from the the menu. Then come back here and import it into a message following the technique described in:

> [@How to share code or flow json](https://discourse.nodered.org/t/how-to-share-code-or-flow-json/506):
>
> To share code samples or flow json in this forum, you need to take care to format it properly so that it is displayed correctly. The easiest way to do that is to click the 'Preformatted Text' button in the toolbar: [image] Then paste in your code or flow json. You should end up with three back-tick characters - ``` - on their own line before and after the code. On standard US English keyboards, this is on the same key as the ~ character. Using the backticks will ens…

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 10:48 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/15 "2019-03-27T10:48:45Z")

</div>

```auto
[{"id":"52faf02a.9ab0d","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"b2127f29.e8e8b","type":"inject","z":"52faf02a.9ab0d","name":"timestamp","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":false,"onceDelay":0.1,"x":116,"y":60,"wires":[["8cd17c9c.ac2d"]]},{"id":"8cd17c9c.ac2d","type":"function","z":"52faf02a.9ab0d","name":"spark","func":"msg.headers = {\n\"authorization\": \"Bearer ZjljZTEyOGUtNjExYS00MjEwLWE0MjItNzA0MmQxMDlhN2UzNmJiODJlODgtYzEw_PF84_consumer\",\n\"content-type\": \"application/json\",\n\"cache-control\": \"no-cache\",\n\"verify\":\"False\",\n }\n\nreturn msg;","outputs":1,"noerr":0,"x":252,"y":100,"wires":[["175a4f2f.18dd61"]]},{"id":"175a4f2f.18dd61","type":"http request","z":"52faf02a.9ab0d","name":"Spark room","method":"GET","ret":"obj","paytoqs":false,"url":"https://api.ciscospark.com/v1/messages?roomId=Y2lzY29zcGFyazovL3VzL1JPT00vNzRiZWMyOTAtNGJjNS0xMWU5LWEzOWUtOWJmMWY5Zjg1YTQ5","tls":"","proxy":"","authType":"basic","x":410,"y":100,"wires":[["5d1c613.7d447a"]]},{"id":"5d1c613.7d447a","type":"switch","z":"52faf02a.9ab0d","name":"person check","property":"payload.items[0].personEmail","propertyType":"msg","rules":[{"t":"eq","v":"u1@webex.bot","vt":"str"},{"t":"neq","v":"u1@webex.bot","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":100,"wires":[["6cf39f92.f8533"],["5fa515d7.05b70c"]]},{"id":"6cf39f92.f8533","type":"debug","z":"52faf02a.9ab0d","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":801,"y":99,"wires":[]},{"id":"5fa515d7.05b70c","type":"switch","z":"52faf02a.9ab0d","name":"input check ","property":"payload.items[0].text","propertyType":"msg","rules":[{"t":"eq","v":"Get Device Status","vt":"str"},{"t":"neq","v":"Get Device Status","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":111,"y":184,"wires":[["5425180.61a36e8"],[]]},{"id":"5425180.61a36e8","type":"function","z":"52faf02a.9ab0d","name":"apic login","func":"msg.payload = {\"username\": \" *******\", \"password\": \"****** \"};\nreturn msg;\n","outputs":1,"noerr":0,"x":324,"y":184,"wires":[["f9b9c7ff.deb0c8"]]},{"id":"f256dd76.f64a9","type":"debug","z":"52faf02a.9ab0d","name":"Output","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":748,"y":183,"wires":[]},{"id":"f9b9c7ff.deb0c8","type":"http request","z":"52faf02a.9ab0d","name":"Ticket","method":"POST","ret":"obj","paytoqs":false,"url":"https://sandboxapicem.cisco.com/api/v1/ticket","tls":"","proxy":"","authType":"basic","x":533,"y":184,"wires":[["f256dd76.f64a9"]]}]

* List item`Preformatted text`Preformatted text

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 10:51 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/16 "2019-03-27T10:51:39Z")

</div>

Go back and read how to post it again, it is not currently importable. You can edit the previous post.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 12:16 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/17 "2019-03-27T12:16:52Z")

</div>

The GET is failing, you haven't posted the working python script for the GET.

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 12:18 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/18 "2019-03-27T12:18:43Z")

</div>

i'm using post method to pass username and password as parameters to generate access token. followed by post method i can use GET method.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 12:22 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/19 "2019-03-27T12:22:13Z")

</div>

The GET fails because it needs a valid access token. If it works in the script but not in node-red then you are not putting the access token in the header correctly.

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 12:26 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/20 "2019-03-27T12:26:59Z")

</div>

yes colin I understand your point, but let me be clear I will be able to generate the access token only by using POST method and it is not working in node-red, only after generating the Access token i shall pass it in header.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [27 March 2019 12:31 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/21 "2019-03-27T12:31:47Z")

</div>

Why then, when I asked for a flow to test did you post one that started with the GET? What you need to post here is a flow that shows the error you are getting.  
Also, you did not respond to @knolleary's message.

---

<div class="post-metadata">

**Author:** ![Trainocate](https://avatars.discourse-cdn.com/v4/letter/t/4da419/32.png) [@Trainocate](https://discourse.nodered.org/u/Trainocate)\
**Post date:** [27 March 2019 12:34 UTC](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478/22 "2019-03-27T12:34:35Z")

</div>

upon searching in google i do see that error is because of SSL certificate validation

[Next page](https://discourse.nodered.org/t/error-sslv3-alert-handshake-failure/9478.md?page=2)
