-
Notifications
You must be signed in to change notification settings - Fork 311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problems proxying HTTPS through an HTTP proxy #1065
Comments
A fix for this should also be back ported to https://github.com/theintern/common. |
|
This is likely related to theintern/digdug#65 |
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves theintern#1065 resolves theintern#1063
Hi, here are detailed answers to the questions you posted on gitter
That's correct
Yes, common@0.2.3 works with the local http proxy and making requests to https URLS. This is my actual test: Configure intern to use local Fiddler (http://localhost:8888 that needs no authentication) "tunnelOptions": {
"proxy": "http://localhost:8888"
} Execute $ rm -rf node_modules
$ npm install
$ npm ls @theintern/common
dojo-intern-example@0.2.0 D:\AMO\dev\learn\intern\intern-examples\dojo-example
`-- intern@4.8.0
+-- @theintern/common@0.2.3
+-- @theintern/digdug@2.4.3
| `-- @theintern/common@0.2.3
`-- @theintern/leadfoot@2.3.0
`-- @theintern/common@0.2.3
$ npm test Intern performs this http request and executes the tests successfully. curl -k -i --raw -o 0.dat "https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar" -H "Accept: application/json, text/plain, */*" -H "User-Agent: axios/0.19.2" -H "host: selenium-release.storage.googleapis.com" -H "Connection: close"
That's correct. This is my actual test: Configure intern to use the external proxy "tunnelOptions": {
"proxy": "http://domain%5Cusername:password@proxy.zzz.com:3128"
} Execute $ rm -rf node_modules
$ npm install
$ npm ls @theintern/common
dojo-intern-example@0.2.0 D:\AMO\dev\learn\intern\intern-examples\dojo-example
`-- intern@4.8.0
+-- @theintern/common@0.2.3
+-- @theintern/digdug@2.4.3
| `-- @theintern/common@0.2.3
`-- @theintern/leadfoot@2.3.0
`-- @theintern/common@0.2.3
$ npm test
> dojo-intern-example@0.2.0 test D:\AMO\dev\learn\intern\intern-examples\dojo-example
> intern
Listening on localhost:9000 (ws 9001)
(ノಠ益ಠ)ノ彡┻━┻
Error: socket hang up
at createHangUpError @ _http_client.js:323:15
at Socket.socketOnEnd @ _http_client.js:426:23
at Socket.emit @ events.js:203:15
at endReadableNT @ _stream_readable.js:1145:12
at process._tickCallback @ internal\process\next_tick.js:63:19
npm ERR! Test failed. See above for more details.
That's correct. This is my actual test: Configure intern to use the external (authenticating) proxy "tunnelOptions": {
"proxy": "http://domain%5Cusername:password@proxy.zzz.com:3128"
} Add $ rm -rf node_modules
$ npm install
$ rm -rf node_modules\intern\node_modules\@theintern\common\
$ rm -rf node_modules\@theintern\digdug\node_modules\@theintern\common
$ rm -rf node_modules\@theintern\leadfoot\node_modules\@theintern\common
$ npm ls @theintern/common
dojo-intern-example@0.2.0 D:\AMO\dev\learn\intern\intern-examples\dojo-example
+-- @theintern/common@0.2.4-beta.0
`-- intern@4.8.0
+-- UNMET DEPENDENCY @theintern/common@0.2.3
+-- @theintern/digdug@2.4.3
| `-- UNMET DEPENDENCY @theintern/common@0.2.3
`-- @theintern/leadfoot@2.3.0
`-- UNMET DEPENDENCY @theintern/common@0.2.3
npm ERR! missing: @theintern/common@0.2.3, required by intern@4.8.0
npm ERR! missing: @theintern/common@0.2.3, required by @theintern/digdug@2.4.3
npm ERR! missing: @theintern/common@0.2.3, required by @theintern/leadfoot@2.3.0
$ npm test
> dojo-intern-example@0.2.0 test D:\AMO\dev\learn\intern\intern-examples\dojo-example
> intern
Listening on localhost:9000 (ws 9001)
(ノಠ益ಠ)ノ彡┻━┻
Error: Client network socket disconnected before secure TLS connection was established
at TLSSocket.onConnectEnd @ _tls_wrap.js:1095:19
at Object.onceWrapper @ events.js:286:20
at TLSSocket.emit @ events.js:203:15
at endReadableNT @ _stream_readable.js:1145:12
at process._tickCallback @ internal\process\next_tick.js:63:19
npm ERR! Test failed. See above for more details.
That's correct. This is my actual test: Configure intern to use the local proxy "tunnelOptions": {
"proxy": "http://localhost:8888"
} Add $ rm -rf node_modules
$ npm install
$ rm -rf node_modules\intern\node_modules\@theintern\common\
$ rm -rf node_modules\@theintern\digdug\node_modules\@theintern\common
$ rm -rf node_modules\@theintern\leadfoot\node_modules\@theintern\common
$ npm ls @theintern/common
dojo-intern-example@0.2.0 D:\AMO\dev\learn\intern\intern-examples\dojo-example
+-- @theintern/common@0.2.4-beta.0
`-- intern@4.8.0
+-- UNMET DEPENDENCY @theintern/common@0.2.3
+-- @theintern/digdug@2.4.3
| `-- UNMET DEPENDENCY @theintern/common@0.2.3
`-- @theintern/leadfoot@2.3.0
`-- UNMET DEPENDENCY @theintern/common@0.2.3
npm ERR! missing: @theintern/common@0.2.3, required by intern@4.8.0
npm ERR! missing: @theintern/common@0.2.3, required by @theintern/digdug@2.4.3
npm ERR! missing: @theintern/common@0.2.3, required by @theintern/leadfoot@2.3.0
$ npm test
> dojo-intern-example@0.2.0 test D:\AMO\dev\learn\intern\intern-examples\dojo-example
> intern
Listening on localhost:9000 (ws 9001)
(ノಠ益ಠ)ノ彡┻━┻
Error: write EPROTO 18592:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:
at WriteWrap.afterWrite [as oncomplete] @ net.js:788:14
npm ERR! Test failed. See above for more details. No requests are logged in Fiddler. |
Using Intern 4.8, common 0.2.3, and mitmproxy running on http://localhost:8080, test runs fail with
The mitm log indicates a protocol error:
It looks like Axios may be making a request to |
Or that could just be a problem with mitm proxy. Proxies are kind of a pain. 😄 |
Well, after making a small modification to mitmproxy (it's a bit picky about URL schemas) by commenting out this block, connections to https addresses go through when using |
That doesn't actually do much to solve the problem, but it suggests that the issue is with specific proxy configurations rather than proxy support being generally broken. |
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves theintern#1065 resolves theintern#1063
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves theintern#1065 resolves theintern#1063
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves theintern#1065 resolves theintern#1063
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves #1065 resolves #1063
Resolve the remote environments (resolving aliases, normalizing environment descriptors) in resolveConfig. Defer parameter aliasing (e.g., ensuring both browser and browserName are present) until after environment resolution so we don't accidentally create too many environment permutations. resolves #1065 resolves #1063
Intern 4.x and 5-pre may have problems proxying HTTPS connections through an HTTP proxy. This axios PR suggests that some configuration may be required to achieve this.
Verify that HTTPS connections through HTTP proxies are failing, and if so, provide a way to tell Intern to tell Axios that a proxy supports HTTPS.
The text was updated successfully, but these errors were encountered: