From e774ec87ca6e98b229930677a30a196fdc14e0c3 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Fri, 13 Feb 2026 12:02:47 +0000 Subject: [PATCH] fix(smart-proxy): provision certificates for wildcard domains instead of skipping them --- changelog.md | 7 +++ deno.lock | 73 ++++++++++++--------------- ts/00_commitinfo_data.ts | 2 +- ts/proxies/smart-proxy/smart-proxy.ts | 2 - 4 files changed, 40 insertions(+), 44 deletions(-) diff --git a/changelog.md b/changelog.md index a78fb9a..f995cb8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2026-02-13 - 23.1.5 - fix(smart-proxy) +provision certificates for wildcard domains instead of skipping them + +- Removed early continue that skipped domains containing '*' in the domain loop +- Now calls provisionFn for wildcard domains so certificate provisioning can proceed for wildcard hosts +- Fixes cases where wildcard domains never had certificates requested + ## 2026-02-12 - 23.1.4 - fix(tests) make tests more robust and bump small dependencies diff --git a/deno.lock b/deno.lock index e6e5aa6..68d9c34 100644 --- a/deno.lock +++ b/deno.lock @@ -14,7 +14,7 @@ "npm:@push.rocks/smartnetwork@^4.4.0": "4.4.0", "npm:@push.rocks/smartpromise@^4.2.3": "4.2.3", "npm:@push.rocks/smartrequest@^5.0.1": "5.0.1", - "npm:@push.rocks/smartrust@^1.2.0": "1.2.0", + "npm:@push.rocks/smartrust@^1.2.1": "1.2.1", "npm:@push.rocks/smartrx@^3.0.10": "3.0.10", "npm:@push.rocks/smartserve@^2.0.1": "2.0.1", "npm:@push.rocks/smartstring@^4.1.0": "4.1.0", @@ -23,7 +23,7 @@ "npm:@types/minimatch@6": "6.0.0", "npm:@types/node@^25.2.3": "25.2.3", "npm:@types/ws@^8.18.1": "8.18.1", - "npm:minimatch@^10.1.2": "10.1.2", + "npm:minimatch@^10.2.0": "10.2.0", "npm:pretty-ms@^9.3.0": "9.3.0", "npm:typescript@^5.9.3": "5.9.3", "npm:why-is-node-running@^3.2.2": "3.2.2", @@ -57,17 +57,13 @@ "integrity": "sha512-dcp0oXsjBL+XdFg1wUUP08uJQid5bQ0Yv3V3Y3lnI2QCbat0FU+Tsb0TZRnZ4+P150Vj/ITBqJUgDzFsF34grA==", "dependencies": [ "@api.global/typedrequest", - "@api.global/typedrequest-interfaces@3.0.19", "@api.global/typedsocket@3.1.1", "@cloudflare/workers-types", "@design.estate/dees-comms", "@push.rocks/lik", "@push.rocks/smartchok", "@push.rocks/smartdelay", - "@push.rocks/smartenv@5.0.13", "@push.rocks/smartfeed", - "@push.rocks/smartfile@11.2.7", - "@push.rocks/smartjson@5.2.0", "@push.rocks/smartlog", "@push.rocks/smartlog-destination-devtools", "@push.rocks/smartlog-interfaces", @@ -76,17 +72,12 @@ "@push.rocks/smartmime", "@push.rocks/smartntml", "@push.rocks/smartopen", - "@push.rocks/smartpath@6.0.0", "@push.rocks/smartpromise", - "@push.rocks/smartrequest@4.4.2", "@push.rocks/smartrx", "@push.rocks/smartsitemap", "@push.rocks/smartstream", "@push.rocks/smarttime", - "@push.rocks/taskbuffer@3.5.0", - "@push.rocks/webrequest@3.0.37", "@push.rocks/webstore", - "@tsclass/tsclass@9.3.0", "@types/express", "body-parser", "cors", @@ -143,9 +134,7 @@ "integrity": "sha512-Wkz3NlhmfdZMKqXXI2c2dMtGGmSmhdOegZiziL+9b2mqPYdc7Gd8AZRdEOKvbSoIvc9G22/5BEadIWHrfq66TA==", "dependencies": [ "@api.global/typedrequest", - "@api.global/typedrequest-interfaces@3.0.19", "@push.rocks/isohash", - "@push.rocks/smartjson@5.2.0", "@push.rocks/smartrx", "@push.rocks/smartserve", "@push.rocks/smartsocket@2.1.0", @@ -1305,17 +1294,6 @@ ], "tarball": "https://verdaccio.lossless.digital/@inquirer/type/-/type-2.0.0.tgz" }, - "@isaacs/balanced-match@4.0.1": { - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "tarball": "https://verdaccio.lossless.digital/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz" - }, - "@isaacs/brace-expansion@5.0.1": { - "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", - "dependencies": [ - "@isaacs/balanced-match" - ], - "tarball": "https://verdaccio.lossless.digital/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz" - }, "@isaacs/cliui@9.0.0": { "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", "tarball": "https://verdaccio.lossless.digital/@isaacs/cliui/-/cliui-9.0.0.tgz" @@ -1748,7 +1726,7 @@ "@push.rocks/smartstring", "@push.rocks/smartunique", "@tsclass/tsclass@9.3.0", - "minimatch@10.1.2" + "minimatch@10.2.0" ], "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartbucket/-/smartbucket-4.4.1.tgz" }, @@ -1853,7 +1831,7 @@ "acme-client", "dns-packet", "elliptic", - "minimatch@10.1.2" + "minimatch@10.2.0" ], "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartdns/-/smartdns-6.2.2.tgz" }, @@ -1869,7 +1847,7 @@ "@types/dns-packet", "acme-client", "dns-packet", - "minimatch@10.1.2" + "minimatch@10.2.0" ], "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartdns/-/smartdns-7.8.0.tgz" }, @@ -2259,12 +2237,12 @@ ], "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrouter/-/smartrouter-1.3.3.tgz" }, - "@push.rocks/smartrust@1.2.0": { - "integrity": "sha512-JlaALselIHoP6C3ceQbrvz424G21cND/QsH/KI3E/JrO4XphJiGZwM6f4yJWrijdPYR/YYMoaIiYN7ybZp0C4w==", + "@push.rocks/smartrust@1.2.1": { + "integrity": "sha512-ANwXXibUwoHNWF1hhXhXVVrfzYlhgHYRa2205Jkd/s/wXzcWHftYZthilJj+52B7nkzSB76umfxKfK5eBYY2Ug==", "dependencies": [ "@push.rocks/smartpath@6.0.0" ], - "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrust/-/smartrust-1.2.0.tgz" + "tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrust/-/smartrust-1.2.1.tgz" }, "@push.rocks/smartrx@3.0.10": { "integrity": "sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==", @@ -2325,7 +2303,6 @@ "@push.rocks/smartsocket@2.1.0": { "integrity": "sha512-etOGyfiDFQz/1WJnD3jFL2N7ykujTjiudAz6qZTz82xE5oabKuKX+Cn8SdM9dOwzyWmBUKbUdll8QhovAXjn+g==", "dependencies": [ - "@api.global/typedrequest-interfaces@3.0.19", "@api.global/typedserver@3.0.80", "@push.rocks/isohash", "@push.rocks/isounique", @@ -3507,7 +3484,7 @@ "@types/minimatch@6.0.0": { "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==", "dependencies": [ - "minimatch@10.1.2" + "minimatch@10.2.0" ], "deprecated": true, "tarball": "https://verdaccio.lossless.digital/@types/minimatch/-/minimatch-6.0.0.tgz" @@ -3809,6 +3786,13 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "tarball": "https://verdaccio.lossless.digital/balanced-match/-/balanced-match-1.0.2.tgz" }, + "balanced-match@4.0.2": { + "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", + "dependencies": [ + "jackspeak" + ], + "tarball": "https://verdaccio.lossless.digital/balanced-match/-/balanced-match-4.0.2.tgz" + }, "bare-events@2.8.2": { "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", "tarball": "https://verdaccio.lossless.digital/bare-events/-/bare-events-2.8.2.tgz" @@ -3891,7 +3875,7 @@ "brace-expansion@1.1.12": { "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dependencies": [ - "balanced-match", + "balanced-match@1.0.2", "concat-map" ], "tarball": "https://verdaccio.lossless.digital/brace-expansion/-/brace-expansion-1.1.12.tgz" @@ -3899,10 +3883,17 @@ "brace-expansion@2.0.2": { "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dependencies": [ - "balanced-match" + "balanced-match@1.0.2" ], "tarball": "https://verdaccio.lossless.digital/brace-expansion/-/brace-expansion-2.0.2.tgz" }, + "brace-expansion@5.0.2": { + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "dependencies": [ + "balanced-match@4.0.2" + ], + "tarball": "https://verdaccio.lossless.digital/brace-expansion/-/brace-expansion-5.0.2.tgz" + }, "broadcast-channel@7.3.0": { "integrity": "sha512-UHPhLBQKfQ8OmMFMpmPfO5dRakyA1vsfiDGWTYNvChYol65tbuhivPEGgZZiuetorvExdvxaWiBy/ym1Ty08yA==", "dependencies": [ @@ -4823,7 +4814,7 @@ "dependencies": [ "foreground-child@3.3.1", "jackspeak", - "minimatch@10.1.2", + "minimatch@10.2.0", "minipass", "package-json-from-dist", "path-scurry" @@ -5862,12 +5853,12 @@ "integrity": "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a", "tarball": "https://verdaccio.lossless.digital/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" }, - "minimatch@10.1.2": { - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "minimatch@10.2.0": { + "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", "dependencies": [ - "@isaacs/brace-expansion" + "brace-expansion@5.0.2" ], - "tarball": "https://verdaccio.lossless.digital/minimatch/-/minimatch-10.1.2.tgz" + "tarball": "https://verdaccio.lossless.digital/minimatch/-/minimatch-10.2.0.tgz" }, "minimatch@3.1.2": { "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", @@ -7313,7 +7304,7 @@ "npm:@push.rocks/smartnetwork@^4.4.0", "npm:@push.rocks/smartpromise@^4.2.3", "npm:@push.rocks/smartrequest@^5.0.1", - "npm:@push.rocks/smartrust@^1.2.0", + "npm:@push.rocks/smartrust@^1.2.1", "npm:@push.rocks/smartrx@^3.0.10", "npm:@push.rocks/smartserve@^2.0.1", "npm:@push.rocks/smartstring@^4.1.0", @@ -7322,7 +7313,7 @@ "npm:@types/minimatch@6", "npm:@types/node@^25.2.3", "npm:@types/ws@^8.18.1", - "npm:minimatch@^10.1.2", + "npm:minimatch@^10.2.0", "npm:pretty-ms@^9.3.0", "npm:typescript@^5.9.3", "npm:why-is-node-running@^3.2.2", diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 9317b94..5d59466 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartproxy', - version: '23.1.4', + version: '23.1.5', description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.' } diff --git a/ts/proxies/smart-proxy/smart-proxy.ts b/ts/proxies/smart-proxy/smart-proxy.ts index 4fc499a..802d36b 100644 --- a/ts/proxies/smart-proxy/smart-proxy.ts +++ b/ts/proxies/smart-proxy/smart-proxy.ts @@ -381,8 +381,6 @@ export class SmartProxy extends plugins.EventEmitter { const domains = Array.isArray(route.match.domains) ? route.match.domains : [route.match.domains]; for (const domain of domains) { - if (domain.includes('*')) continue; - try { const result: TSmartProxyCertProvisionObject = await provisionFn(domain);