# Webhooks with Letsencrypt SSL not working

**URL:** <https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015>\
**Category:** APIs & Integrations\
**Tags:** webhooks\
**Created:** [February 25, 2020, 1:26am UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015 "2020-02-25T01:26:17Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Erman](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/erman/32/41549_2.png) [@Erman](https://community.hubspot.com/u/Erman)\
**Post date:** [February 25, 2020, 1:26am UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/1 "2020-02-25T01:26:17Z")

</div>

Hi,

We migrated to LetsEncrypt SSL in our production server , and now we have a problem sending Webhooks to our HTTPS endpoint. The webhook was working nicely with Godaddy SSL.  
I’ve read about similar LetsEncrypt SSL issues [https://community.hubspot.com/t5/APIs-Integrations/Webhooks-with-HTTPS-SSL-not-working/td-p/228558](https://community.hubspot.com/t5/APIs-Integrations/Webhooks-with-HTTPS-SSL-not-working/td-p/228558) and [https://community.hubspot.com/t5/APIs-Integrations/Webhooks-to-https-fails-without-details/td-p/2408](https://community.hubspot.com/t5/APIs-Integrations/Webhooks-to-https-fails-without-details/td-p/2408)…

I’ve simulated the call with Postman, and it works too. Other integrators are able to call our endpoint correctly too. It’s only not working for Hubspot and getting 403 Forbidden response from webhook in Hubspot.

I’ve analyzed the domain with SSL Labs ([SSL Server Test (Powered by Qualys SSL Labs)](https://www.ssllabs.com/ssltest/analyze.html)) , overall rating is B. and checked with this one ([SSL Security Test | ImmuniWeb](https://www.immuniweb.com/ssl/?id=Bwl4nyv0)) , the rating was B+ . Both says it is trusted, does Hubspot support Letsencrypt SSL? It’s pretty urgent, can you please help with this one?

 ![SSLLabsLetsencrypt.PNG](https://d2qpr2jzcazej7.cloudfront.net/original/3X/d/f/df4ee22367667d4f744166afb914866d0ee75746.png)

 ![ImmuniwebLetsencryptSSLResult.PNG](https://d2qpr2jzcazej7.cloudfront.net/original/2X/8/848603f0ca4539b5f0ef3763b6421f9a5daed2dd.png)

Regards,

Erman

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 25, 2020, 3:16pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/2 "2020-02-25T15:16:44Z")

</div>

Hi, @Erman.

It looks like you opened a support ticket with my colleague Patrice. I’ll work with her to resolve your issue in that ticket.

In the meantime, the short answer is **yes** ; HubSpot webhooks and CRM extensions are compatible with Let’s Encrypt SSL/TLS certificates.

In fact, in my experience, more customers actually have issues with GoDaddy’s wildcard certificates than with Let’s Encrypt. For example, see these related Community posts:

- [Webhook test returning 500 error](https://community.hubspot.com/t5/APIs-Integrations/Webhook-test-returning-500-Error/m-p/226682)
- [Test webhooks returning error](https://community.hubspot.com/t5/APIs-Integrations/Test-Webhooks-returning-error/m-p/273140)

The cause of the issue likely lies in your implementation rather than the certificate authority itself. I’ll dig into this further with Patrice.

Just to note, I will also be assuming that you are referring to the app ID ending in **2291**. Please correct me if I am looking in the wrong app.

---

<div class="post-metadata">

**Author:** ![Erman](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/erman/32/41549_2.png) [@Erman](https://community.hubspot.com/u/Erman)\
**Post date:** [February 25, 2020, 9:05pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/3 "2020-02-25T21:05:42Z")

</div>

Hi Isaac,

Thanks for your reply.

Yes, I opened a support ticket yesterday. Also it’s correct, the app id is ending with **2291**.

FYI, we didn’t do any change in the app, it was working with Godaddy for a long time but it didn’t work when we migrate our SSL to Letsencrypt in our server yesterday. We had to revert back SSL to Godaddy yesterday, since the app is actively being used in the production. Please let me know if you’d need anything else.

Again thanks,

Erman

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 25, 2020, 9:10pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/4 "2020-02-25T21:10:54Z")

</div>

Thanks for clarifying, @Erman, however I won’t be able to troubleshoot effectively without an app that is throwing errors.

Would it be possible to spin up another test app pointing to an instance using the Let’s Encrypt cert?

For context, I ask because I don’t yet have a way to access your app’s logs after 24 hours pass. Since the last “Response deserialization” errors occurred more than a day ago, I don’t have visibility into the old errors. I am seeking whether I can view these in some way. I may also need to validate the Let’s Encrypt cert chain on a live domain.

---

<div class="post-metadata">

**Author:** ![Erman](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/erman/32/41549_2.png) [@Erman](https://community.hubspot.com/u/Erman)\
**Post date:** [February 25, 2020, 9:18pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/5 "2020-02-25T21:18:40Z")

</div>

Hi Isaac,

I can create another CRM card which points to Letsencrypt SSL installed server url (since it is using different port) if it is OK for you? We are actually requesting data for CRM Cards in our app.

Regards,

Erman

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 25, 2020, 9:20pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/6 "2020-02-25T21:20:51Z")

</div>

I think that would work, @Erman. Thank you for your flexibility.

For security, could you send that to Patrice through the support ticket?

---

<div class="post-metadata">

**Author:** ![Erman](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/erman/32/41549_2.png) [@Erman](https://community.hubspot.com/u/Erman)\
**Post date:** [February 25, 2020, 9:31pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/7 "2020-02-25T21:31:48Z")

</div>

Thanks for quick response @IsaacTakushi . I created a CRM card with Letsencrypt Test (id ends with 306) under the same app.

OK found the ticket in Hubspot, going to reply there too.

Thanks again.

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 26, 2020, 7:11pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/8 "2020-02-26T19:11:16Z")

</div>

Thanks so much, @Erman.

Digging into it now.

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 26, 2020, 7:20pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/9 "2020-02-26T19:20:49Z")

</div>

Hey, @Erman.

HubSpot seems to like your certificate — I’m not seeing any “Connection refused” errors.

Instead, I’m seeing `403` errors which seem to be coming from your end. They have the raw text response body:

`Invalid authorization!`

when I make `GET` requests to those addresses from both Chrome and Postman.

In Patrice’s ticket, however, you note “I’ve simulated the call with Postman, and it works too.”

What kind of authentication is your endpoint using? (If you get successful responses in Postman, I would not expect you to be using HubSpot’s [`X-HubSpot-Signature header`](https://developers.hubspot.com/docs/faq/v2-request-validation).)

---

<div class="post-metadata">

**Author:** ![Erman](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/erman/32/41549_2.png) [@Erman](https://community.hubspot.com/u/Erman)\
**Post date:** [February 26, 2020, 9:54pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/10 "2020-02-26T21:54:40Z")

</div>

Hi @IsaacTakushi

Thank you for your support.

I sent message in Patrice’s ticket too. Yes I was able to hit our url via postman, as it’s shown there, but it seems that was still pointing to Goddady SSL installed port URL.

But after I got message from you in regards to X-HubSpot-Signature header. I noticed the reason of 403 authorization error for Letsencrypt SSL Installed URL. We are not able to match incoming X-Hubspot-Signature authorization header since we installed Letsencrypt on Apache Proxy Server and sending incoming calls to our server. So the request URI will be changed and the authorization generated in our program will not match with the incoming X-Hubspot-Signature authorization header. So it always gives 403 Authorization error.

Again thanks for your support.

Regards,

Erman

---

<div class="post-metadata">

**Author:** ![IsaacTakushi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/isaactakushi/32/70387_2.png) [@IsaacTakushi](https://community.hubspot.com/u/IsaacTakushi)\
**Post date:** [February 27, 2020, 12:06pm UTC](https://community.hubspot.com/t/webhooks-with-letsencrypt-ssl-not-working/19015/11 "2020-02-27T12:06:18Z")

</div>

Hi, @Erman.

Thanks so much for the detailed explanation!
