feat(Port80Handler): Add automatic certificate issuance with ACME client
This commit is contained in:
		| @@ -1,5 +1,13 @@ | |||||||
| # Changelog | # Changelog | ||||||
|  |  | ||||||
|  | ## 2025-02-24 - 3.11.0 - feat(Port80Handler) | ||||||
|  | Add automatic certificate issuance with ACME client | ||||||
|  |  | ||||||
|  | - Implemented automatic certificate issuance using 'acme-client' for Port80Handler. | ||||||
|  | - Converts account key and CSR from Buffers to strings for processing. | ||||||
|  | - Implemented HTTP-01 challenge handling for certificate acquisition. | ||||||
|  | - New certificates are fetched and added dynamically. | ||||||
|  |  | ||||||
| ## 2025-02-24 - 3.10.5 - fix(portproxy) | ## 2025-02-24 - 3.10.5 - fix(portproxy) | ||||||
| Fix incorrect import path in test file | Fix incorrect import path in test file | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ | |||||||
|     "@tsclass/tsclass": "^4.4.0", |     "@tsclass/tsclass": "^4.4.0", | ||||||
|     "@types/minimatch": "^5.1.2", |     "@types/minimatch": "^5.1.2", | ||||||
|     "@types/ws": "^8.5.14", |     "@types/ws": "^8.5.14", | ||||||
|  |     "acme-client": "^5.4.0", | ||||||
|     "minimatch": "^9.0.3", |     "minimatch": "^9.0.3", | ||||||
|     "pretty-ms": "^9.2.0", |     "pretty-ms": "^9.2.0", | ||||||
|     "ws": "^8.18.0" |     "ws": "^8.18.0" | ||||||
|   | |||||||
							
								
								
									
										187
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										187
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -32,6 +32,9 @@ importers: | |||||||
|       '@types/ws': |       '@types/ws': | ||||||
|         specifier: ^8.5.14 |         specifier: ^8.5.14 | ||||||
|         version: 8.5.14 |         version: 8.5.14 | ||||||
|  |       acme-client: | ||||||
|  |         specifier: ^5.4.0 | ||||||
|  |         version: 5.4.0 | ||||||
|       minimatch: |       minimatch: | ||||||
|         specifier: ^9.0.3 |         specifier: ^9.0.3 | ||||||
|         version: 9.0.5 |         version: 9.0.5 | ||||||
| @@ -683,6 +686,39 @@ packages: | |||||||
|   '@pdf-lib/upng@1.0.1': |   '@pdf-lib/upng@1.0.1': | ||||||
|     resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} |     resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-cms@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-B+DoudF+TCrxoJSTjjcY8Mmu+lbv8e7pXGWrhNp2/EGJp9EEcpzjBCar7puU57sGifyzaRVM03oD5L7t7PghQg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-csr@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-caxAOrvw2hUZpxzhz8Kp8iBYKsHbGXZPl2KYRMIPvAfFateRebS3136+orUpcVwHRmpXWX2kzpb6COlIrqCumA==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-ecc@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-/HtR91dvgog7z/WhCVdxZJ/jitJuIu8iTqiyWVgRE9Ac5imt2sT/E4obqIVGKQw7PIy+X6i8lVBoT6wC73XUgA==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pfx@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-E3kzQe3J2xV9DP6SJS4X6/N1e4cYa2xOAK46VtvpaRk8jlheNri8v0rBezKFVPB1rz/jW8npO+u1xOvpATFMWg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pkcs8@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-/PuQj2BIAw1/v76DV1LUOA6YOqh/UvptKLJHtec/DQwruXOCFlUo7k6llegn8N5BTeZTWMwz5EXruBw0Q10TMg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pkcs9@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-yiZo/1EGvU1KiQUrbcnaPGWc0C7ElMMskWn7+kHsCFm+/9fU0+V1D/3a5oG0Jpy96iaXggQpA9tzdhnYDgjyFg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-rsa@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-p6hsanvPhexRtYSOHihLvUUgrJ8y0FtOM97N5UEpC+VifFYyZa0iZ5cXjTkZoDwxJ/TTJ1IJo3HVTB2JJTpXvg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-schema@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-x509-attr@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-TWJVJhqc+IS4MTEML3l6W1b0sMowVqdsnI4dnojg96LvTuP8dga9f76fjP07MUuss60uSyT2ckoti/2qHXA10A==} | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-x509@2.3.15': | ||||||
|  |     resolution: {integrity: sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==} | ||||||
|  |  | ||||||
|  |   '@peculiar/x509@1.12.3': | ||||||
|  |     resolution: {integrity: sha512-+Mzq+W7cNEKfkNZzyLl6A6ffqc3r21HGZUezgfKxpZrkORfOqgRXnS80Zu0IV6a9Ue9QBJeKD7kN0iWfc3bhRQ==} | ||||||
|  |  | ||||||
|   '@pkgjs/parseargs@0.11.0': |   '@pkgjs/parseargs@0.11.0': | ||||||
|     resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} |     resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} | ||||||
|     engines: {node: '>=14'} |     engines: {node: '>=14'} | ||||||
| @@ -1563,6 +1599,10 @@ packages: | |||||||
|     resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} |     resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} | ||||||
|     engines: {node: '>= 0.6'} |     engines: {node: '>= 0.6'} | ||||||
|  |  | ||||||
|  |   acme-client@5.4.0: | ||||||
|  |     resolution: {integrity: sha512-mORqg60S8iML6XSmVjqjGHJkINrCGLMj2QvDmFzI9vIlv1RGlyjmw3nrzaINJjkNsYXC41XhhD5pfy7CtuGcbA==} | ||||||
|  |     engines: {node: '>= 16'} | ||||||
|  |  | ||||||
|   agent-base@6.0.2: |   agent-base@6.0.2: | ||||||
|     resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} |     resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} | ||||||
|     engines: {node: '>= 6.0.0'} |     engines: {node: '>= 6.0.0'} | ||||||
| @@ -1626,6 +1666,10 @@ packages: | |||||||
|     resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} |     resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} | ||||||
|     engines: {node: '>=8'} |     engines: {node: '>=8'} | ||||||
|  |  | ||||||
|  |   asn1js@3.0.5: | ||||||
|  |     resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} | ||||||
|  |     engines: {node: '>=12.0.0'} | ||||||
|  |  | ||||||
|   astral-regex@2.0.0: |   astral-regex@2.0.0: | ||||||
|     resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} |     resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} | ||||||
|     engines: {node: '>=8'} |     engines: {node: '>=8'} | ||||||
| @@ -1643,6 +1687,9 @@ packages: | |||||||
|     resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} |     resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} | ||||||
|     engines: {node: '>=4'} |     engines: {node: '>=4'} | ||||||
|  |  | ||||||
|  |   axios@1.7.9: | ||||||
|  |     resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} | ||||||
|  |  | ||||||
|   b4a@1.6.7: |   b4a@1.6.7: | ||||||
|     resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} |     resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} | ||||||
|  |  | ||||||
| @@ -3463,6 +3510,13 @@ packages: | |||||||
|     resolution: {integrity: sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==} |     resolution: {integrity: sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==} | ||||||
|     engines: {node: '>=14.1.0'} |     engines: {node: '>=14.1.0'} | ||||||
|  |  | ||||||
|  |   pvtsutils@1.3.6: | ||||||
|  |     resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} | ||||||
|  |  | ||||||
|  |   pvutils@1.1.3: | ||||||
|  |     resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} | ||||||
|  |     engines: {node: '>=6.0.0'} | ||||||
|  |  | ||||||
|   qs@6.13.0: |   qs@6.13.0: | ||||||
|     resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} |     resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} | ||||||
|     engines: {node: '>=0.6'} |     engines: {node: '>=0.6'} | ||||||
| @@ -3508,6 +3562,9 @@ packages: | |||||||
|     resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} |     resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} | ||||||
|     engines: {node: '>= 14.18.0'} |     engines: {node: '>= 14.18.0'} | ||||||
|  |  | ||||||
|  |   reflect-metadata@0.2.2: | ||||||
|  |     resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} | ||||||
|  |  | ||||||
|   regenerator-runtime@0.14.1: |   regenerator-runtime@0.14.1: | ||||||
|     resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} |     resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} | ||||||
|  |  | ||||||
| @@ -3897,6 +3954,10 @@ packages: | |||||||
|     engines: {node: '>=18.0.0'} |     engines: {node: '>=18.0.0'} | ||||||
|     hasBin: true |     hasBin: true | ||||||
|  |  | ||||||
|  |   tsyringe@4.8.0: | ||||||
|  |     resolution: {integrity: sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==} | ||||||
|  |     engines: {node: '>= 6.0.0'} | ||||||
|  |  | ||||||
|   turndown-plugin-gfm@1.0.2: |   turndown-plugin-gfm@1.0.2: | ||||||
|     resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} |     resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} | ||||||
|  |  | ||||||
| @@ -5212,6 +5273,96 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       pako: 1.0.11 |       pako: 1.0.11 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-cms@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509-attr': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-csr@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-ecc@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pfx@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-cms': 2.3.15 | ||||||
|  |       '@peculiar/asn1-pkcs8': 2.3.15 | ||||||
|  |       '@peculiar/asn1-rsa': 2.3.15 | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pkcs8@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-pkcs9@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-cms': 2.3.15 | ||||||
|  |       '@peculiar/asn1-pfx': 2.3.15 | ||||||
|  |       '@peculiar/asn1-pkcs8': 2.3.15 | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509-attr': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-rsa@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-schema@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       pvtsutils: 1.3.6 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-x509-attr@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/asn1-x509@2.3.15': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       pvtsutils: 1.3.6 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   '@peculiar/x509@1.12.3': | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/asn1-cms': 2.3.15 | ||||||
|  |       '@peculiar/asn1-csr': 2.3.15 | ||||||
|  |       '@peculiar/asn1-ecc': 2.3.15 | ||||||
|  |       '@peculiar/asn1-pkcs9': 2.3.15 | ||||||
|  |       '@peculiar/asn1-rsa': 2.3.15 | ||||||
|  |       '@peculiar/asn1-schema': 2.3.15 | ||||||
|  |       '@peculiar/asn1-x509': 2.3.15 | ||||||
|  |       pvtsutils: 1.3.6 | ||||||
|  |       reflect-metadata: 0.2.2 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |       tsyringe: 4.8.0 | ||||||
|  |  | ||||||
|   '@pkgjs/parseargs@0.11.0': |   '@pkgjs/parseargs@0.11.0': | ||||||
|     optional: true |     optional: true | ||||||
|  |  | ||||||
| @@ -6783,6 +6934,16 @@ snapshots: | |||||||
|       mime-types: 2.1.35 |       mime-types: 2.1.35 | ||||||
|       negotiator: 0.6.3 |       negotiator: 0.6.3 | ||||||
|  |  | ||||||
|  |   acme-client@5.4.0: | ||||||
|  |     dependencies: | ||||||
|  |       '@peculiar/x509': 1.12.3 | ||||||
|  |       asn1js: 3.0.5 | ||||||
|  |       axios: 1.7.9(debug@4.4.0) | ||||||
|  |       debug: 4.4.0 | ||||||
|  |       node-forge: 1.3.1 | ||||||
|  |     transitivePeerDependencies: | ||||||
|  |       - supports-color | ||||||
|  |  | ||||||
|   agent-base@6.0.2: |   agent-base@6.0.2: | ||||||
|     dependencies: |     dependencies: | ||||||
|       debug: 4.3.4 |       debug: 4.3.4 | ||||||
| @@ -6834,6 +6995,12 @@ snapshots: | |||||||
|  |  | ||||||
|   array-union@2.1.0: {} |   array-union@2.1.0: {} | ||||||
|  |  | ||||||
|  |   asn1js@3.0.5: | ||||||
|  |     dependencies: | ||||||
|  |       pvtsutils: 1.3.6 | ||||||
|  |       pvutils: 1.1.3 | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|   astral-regex@2.0.0: {} |   astral-regex@2.0.0: {} | ||||||
|  |  | ||||||
|   async-mutex@0.3.2: |   async-mutex@0.3.2: | ||||||
| @@ -6846,6 +7013,14 @@ snapshots: | |||||||
|  |  | ||||||
|   axe-core@4.10.2: {} |   axe-core@4.10.2: {} | ||||||
|  |  | ||||||
|  |   axios@1.7.9(debug@4.4.0): | ||||||
|  |     dependencies: | ||||||
|  |       follow-redirects: 1.15.9(debug@4.4.0) | ||||||
|  |       form-data: 4.0.1 | ||||||
|  |       proxy-from-env: 1.1.0 | ||||||
|  |     transitivePeerDependencies: | ||||||
|  |       - debug | ||||||
|  |  | ||||||
|   b4a@1.6.7: {} |   b4a@1.6.7: {} | ||||||
|  |  | ||||||
|   bail@2.0.2: {} |   bail@2.0.2: {} | ||||||
| @@ -8954,6 +9129,12 @@ snapshots: | |||||||
|       - supports-color |       - supports-color | ||||||
|       - utf-8-validate |       - utf-8-validate | ||||||
|  |  | ||||||
|  |   pvtsutils@1.3.6: | ||||||
|  |     dependencies: | ||||||
|  |       tslib: 2.8.1 | ||||||
|  |  | ||||||
|  |   pvutils@1.1.3: {} | ||||||
|  |  | ||||||
|   qs@6.13.0: |   qs@6.13.0: | ||||||
|     dependencies: |     dependencies: | ||||||
|       side-channel: 1.1.0 |       side-channel: 1.1.0 | ||||||
| @@ -9008,6 +9189,8 @@ snapshots: | |||||||
|  |  | ||||||
|   readdirp@4.1.1: {} |   readdirp@4.1.1: {} | ||||||
|  |  | ||||||
|  |   reflect-metadata@0.2.2: {} | ||||||
|  |  | ||||||
|   regenerator-runtime@0.14.1: {} |   regenerator-runtime@0.14.1: {} | ||||||
|  |  | ||||||
|   registry-auth-token@5.0.3: |   registry-auth-token@5.0.3: | ||||||
| @@ -9488,6 +9671,10 @@ snapshots: | |||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       fsevents: 2.3.3 |       fsevents: 2.3.3 | ||||||
|  |  | ||||||
|  |   tsyringe@4.8.0: | ||||||
|  |     dependencies: | ||||||
|  |       tslib: 1.14.1 | ||||||
|  |  | ||||||
|   turndown-plugin-gfm@1.0.2: {} |   turndown-plugin-gfm@1.0.2: {} | ||||||
|  |  | ||||||
|   turndown@7.2.0: |   turndown@7.2.0: | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ | |||||||
|  */ |  */ | ||||||
| export const commitinfo = { | export const commitinfo = { | ||||||
|   name: '@push.rocks/smartproxy', |   name: '@push.rocks/smartproxy', | ||||||
|   version: '3.10.5', |   version: '3.11.0', | ||||||
|   description: 'a proxy for handling high workloads of proxying' |   description: 'a proxy for handling high workloads of proxying' | ||||||
| } | } | ||||||
|   | |||||||
| @@ -55,8 +55,8 @@ export class Port80Handler { | |||||||
|     if (this.acmeClient) { |     if (this.acmeClient) { | ||||||
|       return this.acmeClient; |       return this.acmeClient; | ||||||
|     } |     } | ||||||
|     // Generate a new account key. |     // Generate a new account key and convert Buffer to string. | ||||||
|     this.accountKey = await acme.forge.createPrivateKey(); |     this.accountKey = (await acme.forge.createPrivateKey()).toString(); | ||||||
|     this.acmeClient = new acme.Client({ |     this.acmeClient = new acme.Client({ | ||||||
|       directoryUrl: acme.directory.letsencrypt.production, // Use production for a real certificate |       directoryUrl: acme.directory.letsencrypt.production, // Use production for a real certificate | ||||||
|       // For testing, you could use: |       // For testing, you could use: | ||||||
| @@ -170,7 +170,11 @@ export class Port80Handler { | |||||||
|         domainInfo.challengeKeyAuthorization = keyAuthorization; |         domainInfo.challengeKeyAuthorization = keyAuthorization; | ||||||
|  |  | ||||||
|         // Notify the ACME server that the challenge is ready. |         // Notify the ACME server that the challenge is ready. | ||||||
|         await client.verifyChallenge(authz, challenge, keyAuthorization); |         // The acme-client examples show that verifyChallenge takes three arguments: | ||||||
|  |         // (authorization, challenge, keyAuthorization). However, the official TypeScript | ||||||
|  |         // types appear to be out-of-sync. As a workaround, we cast client to 'any'. | ||||||
|  |         await (client as any).verifyChallenge(authz, challenge, keyAuthorization); | ||||||
|  |  | ||||||
|         await client.completeChallenge(challenge); |         await client.completeChallenge(challenge); | ||||||
|         // Wait until the challenge is validated. |         // Wait until the challenge is validated. | ||||||
|         await client.waitForValidStatus(challenge); |         await client.waitForValidStatus(challenge); | ||||||
| @@ -178,9 +182,12 @@ export class Port80Handler { | |||||||
|       } |       } | ||||||
|  |  | ||||||
|       // Generate a CSR and a new private key for the domain. |       // Generate a CSR and a new private key for the domain. | ||||||
|       const [csr, privateKey] = await acme.forge.createCsr({ |       // Convert the resulting Buffers to strings. | ||||||
|  |       const [csrBuffer, privateKeyBuffer] = await acme.forge.createCsr({ | ||||||
|         commonName: domain, |         commonName: domain, | ||||||
|       }); |       }); | ||||||
|  |       const csr = csrBuffer.toString(); | ||||||
|  |       const privateKey = privateKeyBuffer.toString(); | ||||||
|  |  | ||||||
|       // Finalize the order and obtain the certificate. |       // Finalize the order and obtain the certificate. | ||||||
|       await client.finalizeOrder(order, csr); |       await client.finalizeOrder(order, csr); | ||||||
| @@ -195,8 +202,7 @@ export class Port80Handler { | |||||||
|       delete domainInfo.challengeKeyAuthorization; |       delete domainInfo.challengeKeyAuthorization; | ||||||
|  |  | ||||||
|       console.log(`Certificate obtained for ${domain}`); |       console.log(`Certificate obtained for ${domain}`); | ||||||
|       // In a real application, you would persist the certificate and key, |       // In a production system, persist the certificate and key and reload your TLS server. | ||||||
|       // then reload your TLS server with the new credentials. |  | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       console.error(`Error during certificate issuance for ${domain}:`, error); |       console.error(`Error during certificate issuance for ${domain}:`, error); | ||||||
|       const domainInfo = this.domainCertificates.get(domain); |       const domainInfo = this.domainCertificates.get(domain); | ||||||
| @@ -206,7 +212,3 @@ export class Port80Handler { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| // Example usage: |  | ||||||
| // const handler = new Port80Handler(); |  | ||||||
| // handler.addDomain('example.com'); |  | ||||||
| @@ -1,3 +1,4 @@ | |||||||
| export * from './classes.networkproxy.js'; | export * from './classes.networkproxy.js'; | ||||||
| export * from './classes.portproxy.js'; | export * from './classes.portproxy.js'; | ||||||
|  | export * from './classes.port80handler.js'; | ||||||
| export * from './classes.sslredirect.js'; | export * from './classes.sslredirect.js'; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user