{"id":7997,"date":"2020-11-03T13:55:00","date_gmt":"2020-11-03T18:55:00","guid":{"rendered":"https:\/\/www.thesslstore.com\/blog\/?p=7997"},"modified":"2023-03-20T10:13:43","modified_gmt":"2023-03-20T14:13:43","slug":"tls-handshake-failed","status":"publish","type":"post","link":"https:\/\/www.thesslstore.com\/blog\/tls-handshake-failed\/","title":{"rendered":"Rehash: How to Fix the SSL\/TLS Handshake Failed Error"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-fixes-for-the-ssl-tls-handshake-failed-error-for-both-internet-users-and-site-owners\">Fixes for the SSL\/TLS handshake failed error for both internet users and site owners<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s time for another technical article. Today, we\u2019re going to discuss the SSL\/TLS handshake failed error and the ways to fix it. Like many SSL error messages, the SSL handshake error can be triggered from both the client-side and the server-side, so sometimes it can be fixed by regular internet users and other times it\u2019s indicative of a configuration issue on the website\u2019s part.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Regardless of its origins, this can be a frustrating SSL error because it prevents you from making a secure connection with the website you\u2019re attempting to access. This is bad for users and site owners alike \u2014 for the site owners because it drives away business (potentially straight into the arms of your competitors).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ll get into what the SSL\/TLS handshake is, then we\u2019ll cover the reasons for the SSL\/TLS handshake failed error and what you can do to fix it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s hash it out.<span id=\"newline\"><\/span><\/p>\n\n\n<span style=\"--tl-form-height-m:150.25px;--tl-form-height-t:121.4583px;--tl-form-height-d:121.4583px;\" class=\"tl-placeholder-f-type-shortcode_12753 tl-preload-form\"><span><\/span><\/span>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-the-ssl-tls-handshake\">What Is the SSL\/TLS Handshake?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At the beginning of every HTTPS connection, the client (the internet user\u2019s web browser) and the server (hosting the website) must go through a series of checks \u2014 for lack of a better term \u2014 to authenticate one another and determine the parameters of the encrypted connection. This is known as the TLS handshake, although some within the industry still refer to it as an SSL handshake. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(SSL is no longer technically accurate since it&#8217;s a deprecated protocol. However, we&#8217;ll still refer to it as such throughout the article because people still commonly use the term. So, you&#8217;ll see &#8220;SSL handshake&#8221; and &#8220;TLS handshake&#8221; used interchangeably throughout the content, but just know that we&#8217;re still talking about the TLS handshake.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The TLS handshake process accomplishes three things:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Authenticates the server as the rightful owner of the asymmetric public\/private key pair.<\/li>\n\n\n\n<li>Determines the TLS version and cipher suite that will be used for the connection.<\/li>\n\n\n\n<li>Exchanges the symmetric session key that will be used for communication.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-218959840-300x300.jpg\" alt=\"TLS handshake failed\" class=\"wp-image-8005\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-218959840-300x300.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-218959840-768x768.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-218959840-1024x1024.jpg 1024w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-218959840.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">If you simplify <a href=\"https:\/\/www.thesslstore.com\/blog\/what-is-pki-a-crash-course-on-public-key-infrastructure-pki\/\">public key infrastructure<\/a> (PKI) \u2014which serves as the infrastructure for the entire SSL\/TLS ecosystem \u2014 <a href=\"https:\/\/www.thesslstore.com\/blog\/public-key-cryptography-key-exchange\/\">it\u2019s really about secure key exchange<\/a>. During an HTTPS connection, the communication is actually done with <a href=\"https:\/\/www.thesslstore.com\/blog\/difference-encryption-hashing-salting\/\">symmetric session keys<\/a> \u2014 generally 256-bit <a href=\"https:\/\/www.thesslstore.com\/blog\/advanced-encryption-standard-aes-what-it-is-and-how-it-works\/\">advanced encryption standard (AES)<\/a> keys \u2014 that are generated on the client side of things. When a symmetric key is generated, both parties get a copy. They can use it to encrypt and decrypt the data that transmits between them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While 256-bit encryption is still <a href=\"https:\/\/www.thesslstore.com\/blog\/what-is-256-bit-encryption\/\">sufficiently robust<\/a>, the real security is at the gate where a much larger, much stronger private key (generally a 2048-bit RSA key) helps handle the authentication portion of the connection. Authentication is important because the client wants to make sure it\u2019s connecting with the correct party. That\u2019s essentially what the SSL\/TLS handshake is for \u2014 it\u2019s a set of checks where: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The client and server authenticate one another, <\/li>\n\n\n\n<li>They determine the parameters of the HTTPS connections (<a href=\"https:\/\/www.thesslstore.com\/blog\/cipher-suites-algorithms-security-settings\/\">what cipher suite will be used<\/a>), and then <\/li>\n\n\n\n<li>The client encrypts a copy of the session key and sends it to the server for use during the connection.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Historically, the SSL\/TLS handshake has added a small bit of latency to a connection, which is what led to the claim that HTTPS slows down your website. That latency has been addressed in more recent versions of the TLS protocol though, so that\u2019s almost entirely untrue today \u2014 especially with <a href=\"https:\/\/www.thesslstore.com\/blog\/introduction-to-http2-hypertext-transfer-protocol\/\">HTTP\/2<\/a> and <a href=\"https:\/\/www.thesslstore.com\/blog\/http-over-quic-http-3\/\">HTTP\/3<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Currently, there are two different versions of the TLS handshake in use: TLS 1.2 and TLS 1.3. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-ssl-tls-handshake-process-in-tls-1-2-vs-tls-1-3\">The SSL\/TLS Handshake Process in TLS 1.2 vs TLS 1.3<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TLS 1.2 uses a handshake that makes multiple roundtrips between the client and the server.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"2789\" height=\"3183\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/01\/SSL_Handshake_10-Steps-1.png\" alt=\"TLS 1.2 Handshake; TLS 1.3 handshake\" class=\"wp-image-3366\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/01\/SSL_Handshake_10-Steps-1.png 2789w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/01\/SSL_Handshake_10-Steps-1-263x300.png 263w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/01\/SSL_Handshake_10-Steps-1-768x876.png 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/01\/SSL_Handshake_10-Steps-1-897x1024.png 897w\" sizes=\"auto, (max-width: 2789px) 100vw, 2789px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Wondering how the TLS handshake process works? We\u2019re not going to go step-by-step, but essentially: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The client and server ping one another. <\/li>\n\n\n\n<li>The server presents its SSL\/TLS certificate. <\/li>\n\n\n\n<li>The client authenticates the <a href=\"https:\/\/www.thesslstore.com\/blog\/what-is-a-certificate-authority-ca-and-what-do-they-do\/\">certificate authority<\/a> (CA)-signed certificate. <\/li>\n\n\n\n<li>They exchange a list of supported cipher suites and agree on one, then key exchange occurs.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This process involves a lot of steps \u2014 all of which occur in a short amount of time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TLS 1.3, on the other hand, has refined the TLS handshake to a single round-trip.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"374\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/03\/TLS_1_3_Handshake.jpg\" alt=\"TLS 1.3 Handshake\" class=\"wp-image-6088\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/03\/TLS_1_3_Handshake.jpg 1000w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/03\/TLS_1_3_Handshake-300x112.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/03\/TLS_1_3_Handshake-768x287.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Obviously, this cuts down on the time that it takes for a connection to start \u2014 we\u2019re talking milliseconds here so maybe not noticeably (except at scale) \u2014 and makes everything more efficient. TLS 1.3 also allows 0-RTT resumption, which streamlines subsequent connections to a TLS 1.3-enabled website even more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But, given the number of moving parts in a TLS handshake, there\u2019s plenty that can go wrong if a website or a device are misconfigured. A couple years ago we wrote about <a href=\"https:\/\/www.thesslstore.com\/blog\/troubleshoot-firefoxs-tls-handshake-message\/\">fixing TLS handshakes failed errors on Firefox<\/a>, but these errors are far more universal than that. So now let\u2019s talk about what can go wrong with the TLS handshake and what need to be done to fix it.<\/p>\n\n\n<div class=\"wp-block-advanced-gutenberg-blocks-post\">\n\t\t\t<a href=\"https:\/\/www.thesslstore.com\/blog\/explaining-ssl-handshake\/\" class=\"wp-block-advanced-gutenberg-blocks-post__image\" style=\"background-image: url('https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/12\/TLS-Handshake-Feature-300x197.png')\">\n\t\t<\/a>\n\t\t<div class=\"wp-block-advanced-gutenberg-blocks-post__content\">\n\t\t<p class=\"wp-block-advanced-gutenberg-blocks-post__title\">\n\t\t\t<a href=\"https:\/\/www.thesslstore.com\/blog\/explaining-ssl-handshake\/\">Taking a Closer Look at the SSL\/TLS Handshake<\/a>\n\t\t<\/p>\n\t\t<p class=\"wp-block-advanced-gutenberg-blocks-post__metas\">\n\t\t\t<em>\n\t\t\t\t\t\t\t\t\t<span> In Everything Encryption <\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span> By Patrick Nohe <\/span>\n\t\t\t\t\t\t\t<\/em>\n\t\t<\/p>\n\t\t<div class=\"wp-block-advanced-gutenberg-blocks-post__excerpt\">\n\t\t\t<p>\n\t\t\t\t<p>There&#8217;s a lot going on underneath the hood when you connect to a website via HTTPS. First and foremost, everyone needs to&#8230; shake hands?!<\/p>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<p class=\"wp-block-advanced-gutenberg-blocks-product__actions\">\n\t\t\t<a href=\"https:\/\/www.thesslstore.com\/blog\/explaining-ssl-handshake\/\" class=\"wp-block-advanced-gutenberg-blocks-post__button\">\n\t\t\t\tRead more\t\t\t<\/a>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-an-overview-of-ssl-tls-handshake-failed-errors\">An Overview of SSL\/TLS Handshake Failed Errors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To make this article a little bit easier to follow, we\u2019re going to put all of the possible causes for SSL\/TLS handshake failed errors (SSL handshake errors) and who can fix them. After that, we\u2019ll have a dedicated section for each where we\u2019ll cover how to fix them.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>CAUSE<\/strong><\/td><td><strong>DESCRIPTION OF THE TLS HANDSHAKE ERROR<\/strong><\/td><td><strong>FIX<\/strong><\/td><\/tr><tr><td>Incorrect System Time<\/td><td>Client device has the incorrect time &amp; date.<\/td><td>Client<\/td><\/tr><tr><td>Browser Error<\/td><td>A browser configuration is causing the error.<\/td><td>Client<\/td><\/tr><tr><td>Man-in-the-Middle<\/td><td>A third party is intercepting\/manipulating connection.<\/td><td>Client<\/td><\/tr><tr><td>Protocol Mismatch<\/td><td>The protocol used by client is not supported by server.<\/td><td>Server<\/td><\/tr><tr><td>Cipher Suite Mismatch<\/td><td>Cipher suite used by client is not supported by server.<\/td><td>Server<\/td><\/tr><tr><td>Incorrect Certificate<\/td><td> <ul> <li>URL host name doesn\u2019t match host name on server certificate.<\/li> <li>Incomplete\/invalid certificate chain presented to client.<\/li> <li>Revoked\/expired SSL\/TLS certificate sent to the client or server.<\/li> <li>Replacement of self-signed certificates in internal networks has caused a path-building error.<\/li> <\/ul> <\/td><td>Server<\/td><\/tr><tr><td>SNI-Enabled Server<\/td><td>Client can\u2019t communicate with SNI-enabled server.<\/td><td>Server<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let\u2019s dive into fixing these SSL handshake failed errors. Then we\u2019ll finish with a couple of things you should definitely not do from the client-side to try and fix this mistake.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ssl-tls-handshake-failed-client-errors\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" class=\"alignleft wp-image-7999 size-medium\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Computer-Screen-With-Warning-A-237826066-e1542224215167-300x300.png\" alt=\"TLS handshake failed\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Computer-Screen-With-Warning-A-237826066-e1542224215167-300x300.png 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Computer-Screen-With-Warning-A-237826066-e1542224215167-768x768.png 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Computer-Screen-With-Warning-A-237826066-e1542224215167.png 900w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>SSL\/TLS Handshake Failed \u2014 Client Errors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When a handshake fails, it\u2019s usually something going on with the website\/server and its SSL\/TLS configuration. This results in that pesky SSL\/TLS handshake error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Really, it\u2019s just TLS configuration at this point as support for SSL 3.0 has been almost entirely deprecated. (<a href=\"https:\/\/www.ssllabs.com\/ssl-pulse\/\">SSL Labs reports<\/a> that only 4.6% of sites still support the SSL 3.0. protocol as of August 2020.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, there are a few contexts in which a client-side error can cause the SSL\/TLS handshake failed error. And a lot of them may seem pretty trivial \u2014 things like making sure your system time is correct and your browser is current.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But, as we discussed, there are a lot of moving parts with the TLS handshake, and sometimes even the tiniest hiccup can cause the whole thing to go kaput.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, let\u2019s go over a few of the client-side fixes for this issue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-incorrect-system-time\">Incorrect System Time<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Calendar-Time-Icon-Simple-Ill-252192211-300x300.jpg\" alt=\"TLS handshake failed\" class=\"wp-image-8004\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Calendar-Time-Icon-Simple-Ill-252192211-300x300.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Calendar-Time-Icon-Simple-Ill-252192211-768x768.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Calendar-Time-Icon-Simple-Ill-252192211-1024x1024.jpg 1024w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Calendar-Time-Icon-Simple-Ill-252192211.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">I\u2019m really not sure why anyone would take their system clock off of the universal time option, but apparently it happens. Maybe you want to abide your own personal clock like some kind of psychopath or maybe the setting just got accidentally changed \u2014 it\u2019s none of my business, really \u2014 but if your system time is wrong it can cause problems with TLS handshake. As a result, this can cause the SSL\/TLS handshake failed error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s largely owing to the fact that <a href=\"https:\/\/www.thesslstore.com\/blog\/google-chrome-to-join-apple-safari-in-one-year-certificate-validity\/\">SSL\/TLS certificates have finite lifespans<\/a>, so time is important. In fact, in some rather <a href=\"https:\/\/www.thesslstore.com\/blog\/what-happens-when-your-ssl-certificate-expires\/\">high profile cases of certificate expiration<\/a> \u2014 like with the Oculus Rift VR system \u2014 internet users have even purposely set their system times back to a date before said expiration so that they could still connect. (More recent examples of notable certificate expiries affecting everything from <a href=\"https:\/\/www.scmagazine.com\/home\/security-news\/california-under-counted-covid-19-cases-after-certificate-expired\/\">COVID-19 reporting<\/a> to <a href=\"https:\/\/www.thesslstore.com\/blog\/the-day-the-music-died-certificate-expiration-takes-down-spotify\/\">streaming music services<\/a>.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obviously, don\u2019t change your system time. If you\u2019re still getting the SSL\/TLS handshake failed error and your system time is correct, the issue is originating somewhere else.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-browser-error\"><figure><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-8002\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Error-Browser-Vector-Icon-Fil-2421763211-e1542224072360-300x300.jpg\" alt=\"TLS handshake failed error\" width=\"300\" height=\"300\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Error-Browser-Vector-Icon-Fil-2421763211-e1542224072360-300x300.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Error-Browser-Vector-Icon-Fil-2421763211-e1542224072360-768x768.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Error-Browser-Vector-Icon-Fil-2421763211-e1542224072360.jpg 900w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>Browser Error<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This isn\u2019t like a browser error \u2014 this is literally your browser making a mistake. Sometimes your browser can become misconfigured, or a plugin can cause things to work a little bit differently and it results in problems connecting to otherwise legitimate websites. While diagnosing exactly what needs to be tweaked on your current browser may be a little bit more difficult, narrowing the issue down to a specific browser error is pretty simple: just try another browser and see what happens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re using Google Chrome, switch to your OS\u2019s native browser like Apple Safari or Microsoft Edge. Otherwise, hop on Mozilla Firefox (my preference) if you have it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Basically, just switch it up and try connecting to the site. If you get the same SSL\/TLS handshake failed error, then you know it\u2019s not the browser causing the issue. But if you can connect, now you know something is up with your plugins or settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Related<\/strong>: <em>Secure Your Website with a <a href=\"https:\/\/www.thesslstore.com\/comodo\/comodo-ssl-certificates.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">Comodo SSL Certificate<\/a>.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fastest way to fix this SSL\/TLS handshake error-causing issue is just to reset your browser to the default settings and disable all your plugins. From there, you can configure the browser however you want, testing your connection with the site in question as you tweak things. This may take a little bit of time, but it\u2019s really the only way to address the issue if your browser is misconfigured or is making mistakes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-man-in-the-middle\">Man-in-the-Middle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A man-in-the-middle (MITM) is typically presented as a nefarious hacker that\u2019s attempting to steal information or cause harm. That\u2019s actually not always the case. A lot of programs and devices intercept traffic for inspection or some other non-malicious purpose <a href=\"https:\/\/www.thesslstore.com\/blog\/ssl-offloading-bridging-termination\/\">like load balancing<\/a>, and then send it along to the application server. This process technically constitutes a MITM, too.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"811\" height=\"277\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/10\/SSL-Bridging.jpg\" alt=\"SSL offloading\" class=\"wp-image-7768\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/10\/SSL-Bridging.jpg 811w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/10\/SSL-Bridging-300x102.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/10\/SSL-Bridging-768x262.jpg 768w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Unfortunately, sometimes issues with those devices can cause a TLS handshake to fail. It could be something like a network firewall preventing the connection, or it could be a configuration on an edge device on the server-side network. So, this issue can actually be either a client- or server-side fix depending on the scenario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the thing: If this issue is client-side, you risk exposing yourself if you jigger with the settings on your antivirus or VPN. There should generally be a way to whitelist or create an exception for the site in question. But NEVER drop your firewall or your antivirus just connect to a website. If the issue is server-side, it\u2019s likely a configuration issue on an edge device. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recently, <a href=\"https:\/\/www.thesslstore.com\/blog\/author\/rossthomas\/\">Ross Thomas<\/a>, was telling me about a device he dealt with once that was intercepting traffic and affixing a small data string to indicate it had passed inspection. That was causing the data to fail check-sum hashes and could also potentially mess with authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Again, there are too many possible origins for me to narrow it down to a single fix here, but if you have a device inspecting or intercepting traffic, start there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ssl-tls-handshake-failed-server-side-errors\">SSL\/TLS Handshake Failed: Server-Side Errors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The majority of the time SSL\/TLS handshake failures are the result of server-side issues. Some of these are easy to fix, some of them are a little more involved, and some might not be worth fixing at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s take a look.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-protocol-mismatch\"><figure><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-8000 size-medium\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/TLS-1.3-300x283.png\" alt=\"\" width=\"300\" height=\"283\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/TLS-1.3-300x283.png 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/TLS-1.3.png 457w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>Protocol Mismatch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is actually an error that can occur on both the client- and the server-side, and it can actually be something that\u2019s not worth fixing depending on the context. When it comes to supporting protocols and ciphers, the most important piece of wisdom is: always move forward, never move backwards.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TLS 1.2 came out more than a decade ago, yet there are still a small segment of websites that don\u2019t support it. In 2018, <a href=\"https:\/\/www.thesslstore.com\/blog\/tls-1-3-approved\/\">TLS 1.3 was finally published as RFC 8446 by the IETF<\/a>. As of August 2020, <a href=\"https:\/\/www.ssllabs.com\/ssl-pulse\/\">Qualys SSL Labs reports<\/a> that 98.4% of the Alexa top 150,000 sites support TLS 1.2 and 32.8% support TLS 1.3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the other direction, PCI DSS requirements mandate that <a href=\"https:\/\/www.thesslstore.com\/blog\/june-30-to-disable-tls-1-0\/\">all websites that collect payment card information end support for SSL 3.0 and TLS 1.0<\/a>. And the four major browser makers \u2014 Google, Firefox, Apple &amp; Microsoft \u2014 <a href=\"https:\/\/www.thesslstore.com\/blog\/apple-microsoft-google-disable-tls-1-0-tls-1-1\/\">jointly announced TLS 1.1 would be deprecated by 2020<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re getting the SSL\/TLS handshake failed error as a result of a protocol mismatch, it means that the client and server do not have mutual support for the same TLS version. Here\u2019s an example:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>CLIENT<\/strong><\/td><td><strong>SERVER<\/strong><\/td><\/tr><tr><td>Supports TLS 1.0, TLS 1.1<\/td><td>Supports TLS 1.2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this scenario, there is no mutually supported TLS protocol and the server likely isn\u2019t supporting backwards versioning. And before you ask, no, the server shouldn\u2019t fix this. In this example, the client should upgrade their browser, or, in the case that the browser is current \u2014 configure it to support the latest TLS versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At this point, you should be using TLS 1.2 or TLS 1.3. If you\u2019re not, add support for them. But remember, never go backwards.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cipher-suite-mismatch\"><figure><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-8007\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-206113780-e1542224468298-300x300.jpg\" alt=\"TLS handshake failed\" width=\"300\" height=\"300\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-206113780-e1542224468298-300x300.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-206113780-e1542224468298-768x768.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-206113780-e1542224468298-1024x1024.jpg 1024w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-206113780-e1542224468298.jpg 1052w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>Cipher Suite Mismatch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is incredibly similar to the protocol mismatch \u2014 just a bit more granular. SSL\/TLS isn\u2019t just one algorithm that handles everything (though ECC is close), it\u2019s actually <a href=\"https:\/\/www.thesslstore.com\/blog\/cipher-suites-algorithms-security-settings\/\">a collection of algorithms<\/a> that serve different functions and work in conjunction to make up SSL\/TLS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SSL\/TLS is like the Megazord and the cipher suite is like the Power Rangers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What? You try to make a grouping of algorithms sound more interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anyway, while <a href=\"https:\/\/www.thesslstore.com\/blog\/tls-1-3-everything-possibly-needed-know\/\">the cipher suites used by TLS 1.3 have been refined<\/a>, traditionally a Cipher Suite has had algorithms that handle:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Asymmetric public key encryption<\/li>\n\n\n\n<li>Symmetric session key encryption<\/li>\n\n\n\n<li>Key generation<\/li>\n\n\n\n<li>Signature hashing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Different industries and government agencies have different encryption standards that suggest different cipher suites. Generally, there\u2019s a lot of overlap there, and most websites support a handful of cipher suites so that clients have several options and will generally be able to find a mutually agreeable cipher. Obviously, the odds of successful negotiation would decrease substantially if a site only supported a single cipher suite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oftentimes this can happen within a network if you\u2019re performing SSL bridging, where an edge device receives and decrypts HTTPS traffic, then re-encrypts it so send along to the application server. If the edge device and the application server don\u2019t share a mutually supported cipher suite, it will cause errors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Much like with protocol versions, you should only ever move forward with cipher suites \u2014 never backwards. Remember, when a protocol version or cipher suite is deprecated it\u2019s not because the industry is trying to be difficult \u2014 it\u2019s because a vulnerability has been found or is imminent. So, going backwards only makes your connections potentially less safe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-incorrect-ssl-tls-certificate\">Incorrect SSL\/TLS Certificate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are a number of different things that can make a browser view an SSL\/TLS certificate as incorrect and prevent the handshake from completing successfully. We\u2019ll go through each in the next sub-sections. It\u2019s also worth noting that, sometimes, these issues will materialize into a different error on the client-side as opposed to the SSL\/TLS handshake failed message. Generally, something along the lines of the website <a href=\"https:\/\/www.thesslstore.com\/blog\/fix-err-ssl-protocol-error\/\">not providing a secure connection<\/a>. But on a technical level that error is occurring as the result of a failed handshake.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>ISSUE<\/strong><\/td><td><strong>DESCRIPTION<\/strong><\/td><\/tr><tr><td>Host Name Mismatch<\/td><td>The CN in the certificate does not match the host name.<\/td><\/tr><tr><td>Incorrect Certificate Chain<\/td><td>The certificate chain is missing intermediates.<\/td><\/tr><tr><td>Expired\/Revoked Certificate<\/td><td>The server presented an expired, revoked or untrusted certificate.<\/td><\/tr><tr><td>Self-Signed Replacements<\/td><td>(Internal Networks) Certificate replacements confused path.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-incorrect-host-name\">Incorrect Host Name<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This used to be a problem with WWW and non-WWW versions of websites. However, this issue has largely been mitigated by the certificate authority community allowing one to be listed as a SAN (subject alternative name) domain free of charge. This issue can usually be fixed by re-issuing the certificate or sometimes by using a wildcard certificate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-incorrect-certificate-chain\">Incorrect Certificate Chain<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We went in-depth on certificate chains, <a href=\"https:\/\/www.thesslstore.com\/blog\/root-certificates-intermediate\/\">roots and intermediate certificates<\/a> in a previous article, but here\u2019s the quick version. The trust model in SSL\/TLS and PKI in general relies on meticulously-curated root programs. These are collections of trusted CA root certificates that literally live on a computer system.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>ROOT PROGRAM<\/strong><\/td><td><strong>USED BY<\/strong><\/td><\/tr><tr><td>Mozilla<\/td><td>Firefox Desktop and Mobile<\/td><\/tr><tr><td>Google<\/td><td>Android OS<\/td><\/tr><tr><td>Apple<\/td><td>iOS, macOS<\/td><\/tr><tr><td>Microsoft<\/td><td>Windows<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">These CA roots are invaluable \u2014 so much so that rather than risk issuing directly from them, certificate authorities spin up intermediate roots and sign SSL\/TLS leaf (end-user) certificates with those intermediates. Here\u2019s where the chain starts to come in. The Root CA certificate is used to digitally sign the intermediate roots. Those intermediates are used to sign other intermediates or end-user, leaf SSL\/TLS certificates.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"531\" height=\"414\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/Certificate-Chain.jpg\" alt=\"difference between root and intermediate certificate\" class=\"wp-image-7201\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/Certificate-Chain.jpg 531w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/Certificate-Chain-300x234.jpg 300w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">When a browser receives an SSL\/TLS certificate, one of the things it does to check its authenticity is follows the signatures. It looks at the digital signature on the SSL\/TLS certificate and follows it back to the intermediate root that signed it. Then it looks at that intermediate\u2019s <a href=\"https:\/\/www.thesslstore.com\/blog\/digital-signatures-why-you-should-sign-everything\/\">digital signature<\/a> and follows it back to the certificate that signed the intermediate. So on and so forth until, eventually, it reaches one of the root CA certificates in its trust store.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If it can\u2019t do this, the certificate chain is oftentimes incomplete, meaning that the browser couldn\u2019t locate one of the intermediates and the SSL\/TLS handshake failed. To remedy this, you\u2019re going to need to find and install the missing intermediate certificate. Depending on which CA you purchased your certificate from, they should have their intermediates available on their website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-expired-revoked-certificates\">Expired\/Revoked Certificates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While certificate revocation in the current SSL\/TLS ecosystem leaves a lot to be desired, there are still some contexts where a browser will see that a certificate has been revoked and will fail a handshake on that basis. More often, it\u2019s as a result of an expired certificate. SSL\/TLS certificates are only valid for a set amount of time.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><img loading=\"lazy\" decoding=\"async\" width=\"208\" height=\"300\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Vector-sandglass-illustration-7926105-208x300.jpg\" alt=\"TLS handshake failed\" class=\"wp-image-8003\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Vector-sandglass-illustration-7926105-208x300.jpg 208w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Vector-sandglass-illustration-7926105-768x1108.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Vector-sandglass-illustration-7926105-710x1024.jpg 710w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-Vector-sandglass-illustration-7926105.jpg 1386w\" sizes=\"auto, (max-width: 208px) 100vw, 208px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>RELATED:<\/strong> <a href=\"https:\/\/www.thesslstore.com\/blog\/what-happens-when-your-ssl-certificate-expires\/\"><em>This is what happens when your SSL\/TLS certificate expires<\/em><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.thesslstore.com\/blog\/ssl-certificates-expire\/\">SSL\/TLS certificate expiration<\/a> occurs for a few potential reasons (depending on whom you ask):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To ensure that validation information stays accurate.<\/li>\n\n\n\n<li>To proliferate protocol and cipher updates more quickly.<\/li>\n\n\n\n<li>To <a href=\"https:\/\/tools.ietf.org\/id\/draft-nir-saag-star-01.html\">eliminate the need<\/a> for <a href=\"https:\/\/www.thesslstore.com\/blog\/crl-explained-what-is-a-certificate-revocation-list\/\">certificate revocation lists (CRLs)<\/a>.<\/li>\n\n\n\n<li>To combat the possibility of cybercriminals from breaking standard encryption algorithms (although this is virtually impossible without quantum computing).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">As of Sept. 1, 2020, max validity for an SSL\/TLS certificate is now one year (398 days to be exact). That means you need to be swapping out certificates regularly. If you forgot to before one expired, that\u2019s probably why the SSL\/TLS handshake failed. Just get a valid certificate issued and install it \u2014 that should solve your problems.<\/p>\n\n\n<span style=\"--tl-form-height-m:861.156px;--tl-form-height-t:899.625px;--tl-form-height-d:899.625px;\" class=\"tl-placeholder-f-type-shortcode_12653 tl-preload-form\"><span><\/span><\/span>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-self-signed-replacements\">Self-Signed Replacements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On the public internet, a self-signed certificate will return an error 100% of the time if the client hasn\u2019t <a href=\"https:\/\/www.thesslstore.com\/blog\/trust-manually-installed-root-certificates-in-ios\/\">manually installed your private root in their root store<\/a>. But, on internal networks self-signed certificates are fairly common. And if you swap them out enough, that can cause problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Most browsers will cache certificates so that upon return to a website it makes the handshake go faster. But if you\u2019re generating new certificates at regular intervals, continuously adding all of those newly-generated certificates to the local database is going to cause confusion. Eventually, the browser will struggle with path-building and crash.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the past, <a href=\"https:\/\/www.thesslstore.com\/blog\/troubleshoot-firefoxs-tls-handshake-message\/\">Firefox has struggled with this considerably<\/a> \u2014 to the point where 7-8 certificate re-issues will cause significant latency, and 10 or more can cause the handshake to take upwards of 30 seconds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sni-enabled-servers\">SNI-Enabled Servers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is more of an internal issue that exists between devices, but sometimes a client communicating with a <a href=\"https:\/\/www.thesslstore.com\/blog\/server-name-indication-sni\/\">server name indication<\/a> server when it&#8217;s not SNI-enabled can be why the SSL\/TLS handshake failed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first thing you\u2019ll need to do is identify the host name and the port number of the server in question and make sure it\u2019s SNI-enabled as well as that it&#8217;s communicating everything it needs to be. Again, this is usually less of a public-facing issue, but it can be the cause from time to time internally.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-not-to-do-don-t-reward-bad-ssl-tls-implementations\">What Not to Do \u2013 Don\u2019t Reward Bad SSL\/TLS Implementations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A lot of the time website owners don\u2019t want to make a change until there&#8217;s a problem they can\u2019t ignore. While there are a few client-side fixes for the SSL\/TLS handshake failed error, it\u2019s generally going to be a server-side issue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That means as a regular internet user, your options are limited when it comes to mitigating SSL\/TLS handshake errors. The best thing to do is to inform the site owner of the problem and wait for them to fix it. If they don\u2019t, it might be wise just to stop using the website. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.thesslstore.com\/blog\/ssl_error_rx_record_too_long\/\">There are some things you definitely should never do to reach a website<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Don\u2019t drop your firewall.<\/strong> You can usually whitelist a website, but don\u2019t drop your firewall. Ever.<\/li>\n\n\n\n<li><strong>Don\u2019t disable your antivirus.<\/strong> Again, whitelist if possible, but keep it on and updated.<\/li>\n\n\n\n<li><strong>Don\u2019t connect via HTTP or click through interstitial warnings.<\/strong> This is bad any way you look at it and can result in a lot of issues.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If the website can\u2019t offer a <a href=\"https:\/\/www.thesslstore.com\/blog\/5-easy-effective-tips-safe-online-shopping-holiday-season\/\">safe browsing experience<\/a>, you shouldn\u2019t be visiting it. Eliminating the SSL\/TLS handshake error isn&#8217;t worth jeopardizing your security. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>Note:<\/strong> This article on TLS handshake failed errors (SSL handshake failed errors) was originally written by Patrick Nohe on Nov. 14, 2018. It was updated and re-published by Casey Crane as a \u201crehash\u201d of the content on Sept. 3, 2020.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>As always, leave any comments or questions below\u2026<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1559\" height=\"407\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568.jpg\" alt=\"Hashed Out by The SSL Store is the voice of record in the SSL\/TLS industry.\" class=\"wp-image-7276\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568.jpg 1559w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-300x78.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-768x200.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-1024x267.jpg 1024w\" sizes=\"auto, (max-width: 1559px) 100vw, 1559px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Fixes for the SSL\/TLS handshake failed error for both internet users and site owners It\u2019s time for another technical article. Today, we\u2019re going to discuss the SSL\/TLS handshake failed error&#8230;<\/p>\n","protected":false},"author":6,"featured_media":8001,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":"","tve_updated_post":"","tve_custom_css":"","tve_user_custom_css":"","tve_globals":{},"tcb2_ready":0,"tcb_editor_enabled":0,"tve_landing_page":"","_tve_header":"","_tve_footer":""},"categories":[130],"tags":[9174,325,9319],"class_list":["post-7997","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-everything-encryption","tag-ssl-errors","tag-ssl-handshake","tag-tls-handshake","post-with-tags"],"views":420411,"jetpack_featured_media_url":"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-220580290.jpg","_links":{"self":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/7997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/comments?post=7997"}],"version-history":[{"count":0,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/7997\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media\/8001"}],"wp:attachment":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media?parent=7997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/categories?post=7997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/tags?post=7997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}