231 Commits

Author SHA1 Message Date
Philipp Kunz
29d28fba93 feat(SniHandler): Add session cache support and tab reactivation detection to improve SNI extraction in TLS handshakes 2025-03-11 18:05:20 +00:00
Philipp Kunz
6fddafe9fd feat(PortProxy): Add domain-specific NetworkProxy integration support to PortProxy 2025-03-11 17:50:56 +00:00
Philipp Kunz
21a24fd95b fix(core): No code changes detected; bumping patch version for consistency. 2025-03-11 17:38:32 +00:00
Philipp Kunz
415b82a84a fix(PortProxy): Improve SNI extraction handling in PortProxy by passing explicit connection info to extractSNIWithResumptionSupport for better TLS renegotiation and debug logging. 2025-03-11 17:37:43 +00:00
Philipp Kunz
0e12706176 feat(SniHandler): Enhance SNI extraction to support fragmented ClientHello messages, TLS 1.3 early data, and improved PSK parsing 2025-03-11 17:33:31 +00:00
Philipp Kunz
36e4341315 fix(snihandler): Enhance SNI extraction to support TLS 1.3 PSK-based session resumption by adding a dedicated extractSNIFromPSKExtension method and improved logging for session resumption indicators. 2025-03-11 17:23:57 +00:00
Philipp Kunz
43378becd2 fix(PortProxy): Improve buffering and data handling during connection setup in PortProxy to prevent data loss 2025-03-11 17:05:15 +00:00
Philipp Kunz
87d26c86a1 fix(PortProxy/SNI): Refactor SNI extraction in PortProxy to use the dedicated SniHandler class 2025-03-11 17:01:07 +00:00
Philipp Kunz
8d06f1533e feat(portproxy): Add ACME certificate management options to PortProxy, update ACME settings handling, and bump dependency versions 2025-03-11 12:56:03 +00:00
Philipp Kunz
223be61c8d 3.35.0 2025-03-11 12:45:55 +00:00
Philipp Kunz
6a693f4d86 feat(NetworkProxy): Integrate Port80Handler for automatic ACME certificate management
- Add ACME certificate management capabilities to NetworkProxy
- Implement automatic certificate issuance and renewal
- Add SNI support for serving the correct certificates
- Create certificate storage and caching system
- Enable dynamic certificate issuance for new domains
- Support automatic HTTP-to-HTTPS redirects for secured domains

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 12:45:22 +00:00
Philipp Kunz
27a2bcb556 feat(NetworkProxy): Add support for array-based destinations and integration with PortProxy
- Update NetworkProxy to support new IReverseProxyConfig interface with destinationIps[] and destinationPorts[]
- Add load balancing with round-robin selection of destination endpoints
- Create automatic conversion of PortProxy domain configs to NetworkProxy configs
- Implement backward compatibility to ensure tests continue to work

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 12:34:24 +00:00
Philipp Kunz
e31c84493f feat(core): Improve wildcard domain matching and enhance NetworkProxy integration in PortProxy. Added support for TLD wildcards and complex wildcard patterns in the router, and refactored TLS renegotiation handling for stricter SNI enforcement. 2025-03-11 11:34:29 +00:00
Philipp Kunz
df7a12041e feat(portproxy): Add browser-friendly mode and SNI renegotiation configuration options to PortProxy 2025-03-11 09:57:06 +00:00
Philipp Kunz
85cc57ae10 fix(PortProxy): Simplify TLS handshake SNI extraction and update timeout settings in PortProxy for improved maintainability and reliability. 2025-03-11 09:12:40 +00:00
Philipp Kunz
865d21b36a fix(portproxy): Relax TLS handshake and connection timeout settings for improved stability in chained proxy scenarios; update TLS session cache defaults and add keep-alive flags to connection records. 2025-03-11 04:39:17 +00:00
Philipp Kunz
ccccc5b8c8 feat(PortProxy): Enhance TLS session cache, SNI extraction, and chained proxy support in PortProxy. Improve handling of multiple and fragmented TLS records, and add new configuration options (isChainedProxy, chainPosition, aggressiveTlsRefresh, tlsSessionCache) for robust TLS certificate refresh. 2025-03-11 04:24:29 +00:00
Philipp Kunz
119b643690 fix(PortProxy): Improve SNI renegotiation handling by adding flexible domain configuration matching on rehandshake and session resumption events. 2025-03-11 03:56:09 +00:00
Philipp Kunz
d6022c8f8a fix(PortProxy): Improve TLS handshake buffering and enhance debug logging for SNI forwarding in PortProxy 2025-03-11 03:48:10 +00:00
Philipp Kunz
0ea0f02428 fix(PortProxy): Improve connection reliability for initial and resumed TLS sessions
Added enhanced connection handling to fix issues with both initial connections and TLS session resumption:

1. Improved debugging for connection setup with detailed logging
2. Added explicit timeout for backend connections to prevent hanging connections
3. Enhanced error recovery for connection failures with faster client notification
4. Added detailed session tracking to maintain domain context across TLS sessions
5. Fixed handling of TLS renegotiation with improved activity timestamp updates

This should address the issue where initial connections may fail but subsequent retries succeed,
as well as ensuring proper certificate selection for resumed TLS sessions.

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 03:33:03 +00:00
Philipp Kunz
55f25f1976 feat(PortProxy): Improve TLS handshake SNI extraction and add session resumption tracking in PortProxy 2025-03-11 03:16:04 +00:00
Philipp Kunz
cb83caeafd fix(core): No changes in this commit. 2025-03-11 02:50:01 +00:00
Philipp Kunz
7850a80452 fix(PortProxy): Fix TypeScript errors by using correct variable names
Fixed TypeScript errors caused by using 'connectionRecord' instead of 'record' in TLS renegotiation handlers.
The variable name mistake occurred when moving and restructuring the TLS handshake detection code.

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 02:47:57 +00:00
Philipp Kunz
ef8f583a90 fix(PortProxy): Move TLS renegotiation detection before socket piping
Fundamentally restructured TLS renegotiation handling to ensure handshake packets are properly detected. The previous implementation attached event handlers after pipe() was established, which might have caused handshake packets to bypass detection. Key changes:

1. Moved renegotiation detection before pipe() to ensure all TLS handshake packets are detected
2. Added explicit lockedDomain setting for all SNI connections
3. Simplified the NetworkProxy TLS handshake detection
4. Removed redundant data handlers that could interfere with each other

These changes should make renegotiation detection more reliable regardless of how Node.js internal pipe() implementation handles data events.

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 02:45:51 +00:00
Philipp Kunz
2bdd6f8c1f fix(PortProxy): Update activity timestamp during TLS renegotiation to prevent connection timeouts
Ensures that TLS renegotiation packets properly update the connection's activity timestamp even when no SNI is present or when there are errors processing the renegotiation. This prevents connections from being closed due to inactivity during legitimate TLS renegotiation.

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-11 02:40:08 +00:00
Philipp Kunz
788b444fcc fix(PortProxy): Improve TLS renegotiation SNI handling by first checking if the new SNI is allowed under the existing domain config. If not, attempt to find an alternative domain config and update the locked domain accordingly; otherwise, terminate the connection on SNI mismatch. 2025-03-11 02:25:58 +00:00
Philipp Kunz
74fdb58f84 fix(PortProxy): Improve TLS renegotiation handling in PortProxy by validating the new SNI against allowed domain configurations. If the new SNI is permitted based on existing IP rules, update the locked domain to allow connection reuse; otherwise, terminate the connection to prevent misrouting. 2025-03-11 02:18:56 +00:00
Philipp Kunz
67a4228518 fix(internal): No uncommitted changes detected; project files and tests remain unchanged. 2025-03-10 22:36:28 +00:00
Philipp Kunz
c415a6c361 fix(PortProxy): Fix TLS renegotiation handling and adjust TLS keep-alive timeouts in PortProxy implementation 2025-03-10 22:35:34 +00:00
Philipp Kunz
f9c42975dc fix(classes.portproxy.ts): Simplify timeout management in PortProxy and fix chained proxy certificate refresh issues 2025-03-10 22:07:12 +00:00
Philipp Kunz
8d3b07b1e6 fix(classes.portproxy.ts): Adjust TLS keep-alive timeout to refresh certificate context. 2025-03-10 14:15:03 +00:00
Philipp Kunz
146fac73cf fix(PortProxy): Improve TLS keep-alive management and fix whitespace formatting 2025-03-10 14:13:56 +00:00
Philipp Kunz
9d7ed21cba feat(PortProxy): Add advanced TLS keep-alive handling and system sleep detection 2025-03-08 12:40:55 +00:00
Philipp Kunz
0704853fa2 fix(core): Fix functional errors in the proxy setup and enhance pnpm configuration 2025-03-07 15:50:25 +00:00
Philipp Kunz
f28e68e487 fix(PortProxy): Fix test for PortProxy handling of custom IPs in Docker/CI environments. 2025-03-07 15:46:34 +00:00
Philipp Kunz
618b6fe2d1 fix(readme): Update readme for IPTablesProxy options 2025-03-07 14:34:49 +00:00
Philipp Kunz
bbdea52677 feat(IPTablesProxy): Enhanced IPTablesProxy with multi-port and IPv6 support 2025-03-07 14:30:38 +00:00
Philipp Kunz
98c61cccbb fix(PortProxy): Adjust default timeout settings and enhance keep-alive connection handling in PortProxy. 2025-03-07 11:16:44 +00:00
Philipp Kunz
b96d7dec98 fix(core): Ensure proper resource cleanup during server shutdown. 2025-03-07 02:55:19 +00:00
Philipp Kunz
9bd87b8437 fix(router): Improve path pattern matching and hostname prioritization in router 2025-03-07 02:54:34 +00:00
Philipp Kunz
a14b7802c4 fix(PortProxy): Ensure timeout values are within Node.js safe limits 2025-03-06 23:08:57 +00:00
Philipp Kunz
cb6c2503e2 fix(portproxy): Adjust safe timeout defaults in PortProxy to prevent overflow issues. 2025-03-06 23:00:24 +00:00
Philipp Kunz
0e605d9a9d fix(PortProxy): Improved code formatting and readability in PortProxy class by adjusting spacing and comments. 2025-03-06 22:56:18 +00:00
Philipp Kunz
568f77e65b feat(router): Add detailed routing tests and refactor ProxyRouter for improved path matching 2025-03-06 08:36:19 +00:00
Philipp Kunz
eea8942670 feat(AcmeCertManager): Introduce AcmeCertManager for enhanced ACME certificate management 2025-03-06 08:27:44 +00:00
Philipp Kunz
06e6c2eb52 feat(readme): Updated README with enhanced TLS handling, connection management, and troubleshooting sections. 2025-03-05 18:47:38 +00:00
Philipp Kunz
d4251b2cf9 fix(portproxy): Improve connection timeouts and detailed logging for PortProxy 2025-03-05 18:40:42 +00:00
Philipp Kunz
7e3ed93bc9 fix(core): Update dependencies and configuration improvements. 2025-03-05 18:25:01 +00:00
Philipp Kunz
fe8106f0c8 fix(PortProxy): Adjust timeout settings and handle inactivity properly in PortProxy. 2025-03-05 18:24:28 +00:00
Philipp Kunz
4fd5524a0f fix(PortProxy): Adjust inactivity threshold to a random value between 20 and 30 minutes for better variability 2025-03-05 18:07:39 +00:00