From cc5465638e54bcdba7103f8b03f8cbafb13ce52c Mon Sep 17 00:00:00 2001 From: S_T_3_V_3 Date: Sun, 23 Apr 2023 18:32:34 +1000 Subject: [PATCH 1/3] Fix for SSL certificate error #2011 - Keepalive, User Agent + Accept headers - Catch added for failed JSON parsing - More accurate errors displayed to user --- backend/internal/certificate.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index c93e2578..9f3fd28b 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -1164,7 +1164,10 @@ const internalCertificate = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(formBody) + 'Content-Length': Buffer.byteLength(formBody), + 'Connection': 'keep-alive', + 'User-Agent': 'Nginx Proxy Manager', + 'Accept': '*/*' } }; @@ -1175,12 +1178,16 @@ const internalCertificate = { res.on('data', (chunk) => responseBody = responseBody + chunk); res.on('end', function () { - const parsedBody = JSON.parse(responseBody + ''); - if (res.statusCode !== 200) { + try { + const parsedBody = JSON.parse(responseBody + ''); + resolve(parsedBody); + } + catch { + logger.warn("Error"); + logger.warn(`Status Code: ${res.statusCode}`); logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res); resolve(undefined); } - resolve(parsedBody); }); }); From 54b734dc10059742fb1e5d9cd46d761a2ad2ba4f Mon Sep 17 00:00:00 2001 From: S_T_3_V_3 Date: Mon, 14 Aug 2023 22:41:51 +1000 Subject: [PATCH 2/3] Fix for catch error handling --- backend/internal/certificate.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 9f3fd28b..7964907f 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -1181,9 +1181,8 @@ const internalCertificate = { try { const parsedBody = JSON.parse(responseBody + ''); resolve(parsedBody); - } - catch { - logger.warn("Error"); + } catch (err) { + logger.warn("Error: " + err.message); logger.warn(`Status Code: ${res.statusCode}`); logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res); resolve(undefined); From 99cbcd5e2f1e174f389dfad2cae99ccd798f7725 Mon Sep 17 00:00:00 2001 From: S_T_3_V_3 Date: Mon, 14 Aug 2023 23:14:40 +1000 Subject: [PATCH 3/3] Fixes for styleguide --- backend/internal/certificate.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 7964907f..7bb82f1e 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -1164,10 +1164,10 @@ const internalCertificate = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(formBody), - 'Connection': 'keep-alive', - 'User-Agent': 'Nginx Proxy Manager', - 'Accept': '*/*' + 'Content-Length': Buffer.byteLength(formBody), + 'Connection': 'keep-alive', + 'User-Agent': 'Nginx Proxy Manager', + 'Accept': '*/*' } }; @@ -1182,7 +1182,7 @@ const internalCertificate = { const parsedBody = JSON.parse(responseBody + ''); resolve(parsedBody); } catch (err) { - logger.warn("Error: " + err.message); + logger.warn(`Error: ${err.message}`); logger.warn(`Status Code: ${res.statusCode}`); logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res); resolve(undefined);