@factiii/stack 0.1.197 → 0.1.199
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scanfix/fixes/certbot.d.ts.map +1 -1
- package/dist/scanfix/fixes/certbot.js +5 -1
- package/dist/scanfix/fixes/certbot.js.map +1 -1
- package/dist/scanfix/ssl-cert-helper.d.ts.map +1 -1
- package/dist/scanfix/ssl-cert-helper.js +2 -17
- package/dist/scanfix/ssl-cert-helper.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certbot.d.ts","sourceRoot":"","sources":["../../../src/scanfix/fixes/certbot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAiB,MAAM,sBAAsB,CAAC;AAGtE,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"certbot.d.ts","sourceRoot":"","sources":["../../../src/scanfix/fixes/certbot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAiB,MAAM,sBAAsB,CAAC;AAGtE,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAuLlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,GAAG,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAEvC"}
|
|
@@ -37,6 +37,10 @@ function createCertbotFix(stage, envKey) {
|
|
|
37
37
|
// Skip SSL for IP addresses (certs only work with domain names)
|
|
38
38
|
if (/^\d+\.\d+\.\d+\.\d+$/.test(domain))
|
|
39
39
|
return false;
|
|
40
|
+
// Skip SSL if explicitly disabled in config (e.g. staging behind NAT)
|
|
41
|
+
const envObj = config[envKey];
|
|
42
|
+
if (envObj?.ssl === false || envObj?.ssl === 'false')
|
|
43
|
+
return false;
|
|
40
44
|
const result = (0, ssl_cert_helper_js_1.checkCertificate)(domain, 7);
|
|
41
45
|
if (!result.exists) {
|
|
42
46
|
console.log(' No SSL certificate for ' + domain);
|
|
@@ -116,7 +120,7 @@ function createCertbotFix(stage, envKey) {
|
|
|
116
120
|
// Capture both stdout AND stderr (certbot writes renewal info to stderr)
|
|
117
121
|
let fullOutput = '';
|
|
118
122
|
try {
|
|
119
|
-
fullOutput = (0, child_process_1.execSync)(certbotCmd + ' 2>&1', { encoding: 'utf8' }) || '';
|
|
123
|
+
fullOutput = (0, child_process_1.execSync)(certbotCmd + ' 2>&1', { encoding: 'utf8', timeout: 120000 }) || '';
|
|
120
124
|
}
|
|
121
125
|
catch (cmdErr) {
|
|
122
126
|
// execSync throws on non-zero exit, but output may still be useful
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certbot.js","sourceRoot":"","sources":["../../../src/scanfix/fixes/certbot.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAcH,
|
|
1
|
+
{"version":3,"file":"certbot.js","sourceRoot":"","sources":["../../../src/scanfix/fixes/certbot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssl-cert-helper.d.ts","sourceRoot":"","sources":["../../src/scanfix/ssl-cert-helper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"ssl-cert-helper.d.ts","sourceRoot":"","sources":["../../src/scanfix/ssl-cert-helper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,eAAe,CA0EtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CASxC"}
|
|
@@ -65,23 +65,8 @@ function checkCertificate(domain, warnDays = 7) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
if (!canReadFile) {
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
const sslOutput = (0, child_process_1.execSync)('echo | openssl s_client -connect ' + domain + ':443 -servername ' + domain + ' -connect_timeout 5 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null', { encoding: 'utf8', timeout: 10000 });
|
|
71
|
-
const match = sslOutput.match(/notAfter=(.+)/);
|
|
72
|
-
if (match && match[1]) {
|
|
73
|
-
const expiryDate = new Date(match[1]);
|
|
74
|
-
const daysUntilExpiry = Math.floor((expiryDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
|
|
75
|
-
return {
|
|
76
|
-
exists: true,
|
|
77
|
-
valid: daysUntilExpiry > warnDays,
|
|
78
|
-
expiresInDays: daysUntilExpiry,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// SSL not serving — cert truly doesn't exist
|
|
84
|
-
}
|
|
68
|
+
// No cert file found on disk — cert doesn't exist
|
|
69
|
+
// (Skip network-based openssl s_client check: it hangs on macOS when port 443 is unreachable)
|
|
85
70
|
return { exists: false, valid: false };
|
|
86
71
|
}
|
|
87
72
|
// Read cert with sudo if needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssl-cert-helper.js","sourceRoot":"","sources":["../../src/scanfix/ssl-cert-helper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBH,
|
|
1
|
+
{"version":3,"file":"ssl-cert-helper.js","sourceRoot":"","sources":["../../src/scanfix/ssl-cert-helper.ts"],"names":[],"mappings":"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"}
|