bitfocus / companion-module-generic-http

Generic HTTP module
MIT License
9 stars 19 forks source link

HTTP GET gives CERT_HAS_EXPIRED #20

Closed yorkshire-pudding closed 2 years ago

yorkshire-pudding commented 2 years ago

I have built a custom web app built on PHP that I use for the ATEM operator to inform camera operators which source is active and also where the camera should be pointing.

I'm wanting to combine the action to update the status with the ATEM source command, but at the moment just trying to get the web app to work.

I've put the domain (e.g. https://app.example.org.uk/) as base URL and the action page with GET query in the button action for GET: updateSourceStatus.php?inputSource=2

Each time in the log it says HTTP GET Request failed (CERT_HAS_EXPIRED) If I open this page in browser and change the parameter it works fine but not in Companion with the generic HTTP GET request. Also certificate is valid in browser and showing as valid in cPanel where the app is hosted.

I would possibly consider a module for this in the future when I open source it, but it's not ready for release yet. To note this works using BarRaider: API Ninja in the stream deck software itself.

estilles commented 2 years ago

@yorkshire-pudding I haven't been able to replicate this. I've tried a number of HTTPS servers, with both issues and self-signed certs. Since this is a custom service it would be difficult for us to troubleshoot any further.

Any additional details you can provide may be able to help us help you.

yorkshire-pudding commented 2 years ago

@estilles Thanks for looking at this. I have created a duplicate test version on a separate subdomain. I've added a Let's encrypt SSL certificate to it. https://testttapp.systemhorizons.co.uk/ You can change manually on the page and also using updateSourceStatus.php?inputSource=2 for 1, 2 and 4 These work with both BarRaider's API Ninja and Adrian Mullings' Web Requests but in Companion I get the HTTP GET Request failed (CERT_HAS_EXPIRED) error in the log and nothing happens. There are no errors generated on the server for this app.

In Companion, I put https://testttapp.systemhorizons.co.uk/ in the Base URL and updateSourceStatus.php?inputSource=1 in the button URI field with nothing in the header input(JSON) field.

Thanks

haakonnessjoen commented 2 years ago

Old node/electron versions do not like the newer Let's Encrypt certificates, because the root certs node has bundled are too old. (it does not use system root certs) I think the development version of companion might have new enough electron to mitigate this problem. What version of companion are you testing with?

yorkshire-pudding commented 2 years ago

v2.1.3-6b6820cd-2696 (Windows).

estilles commented 2 years ago

@haakonnessjoen is right.

I was able to successfully test with your config/parameters above on the latest beta. I echo @haakonnessjoen's question: What version of Companion are you using?

estilles commented 2 years ago

v2.1.3-6b6820cd-2696 (Windows).

Try the latest beta. Should work fine.

yorkshire-pudding commented 2 years ago

Thanks - will try

yorkshire-pudding commented 2 years ago

I can confirm that works on the latest beta

estilles commented 2 years ago

Awesome! Thanks for the feedback.

haakonnessjoen commented 2 years ago

Closing this issue as solved.

TLDR: Let's encrypt certificates that are issued now has changed to a new root CA that is not known by older Companion versions. Using current beta versions of Companion, will fix related certificate issues.