-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Iron Port TLS 1.0 proxy, pub get fails #25615
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
Comments
@nex3 would you look at this quick? I believe you've dealt w/ firewall issues before... |
To be honest, all I know about proxy issues is that they're the domain of |
@whesse is there anything about the new BoringSSL impl that could cause this? |
If 1.12 is also failing in the same way, then the problem is not BoringSSL. I don't really know much about proxies. Someone else should look at this, and ask the right questions to the bug reporter. This does need to be addressed, so I think the pub team should follow up on this, and find someone who can figure this out. |
Based on the @crodier Could you unset all the environment variables described here to make pub use direct connections and try again? At least that documentation mentions that a
The functionality for finding a proxy or disabling the use of proxies can be configured via HttpClient.findProxy. I also assume that pub doesn't disable proxies but rather let @sgjesse Maybe you have more ideas? |
Thanks for looking everyone. I did attach both the with https_proxy Maven (java) had s similar SSL issue, where adding the iron port If this theory is not easily testable, I can try to build and debug into On Tue, Feb 2, 2016, 1:15 PM Martin Kustermann [email protected]
|
@crodier Have you tried to run a simple dart:io program accessing an https URL? E.g.
I assume that will give the same error? Do you know what type of authentication the proxy uses? dart:io support basic and digest. Regarding the certificate, does the proxy server require an HTTPS connection? If so we are out of luck, as that is not supported. The proxy configuration we support are PROXY and DIRECT as described in https://en.wikipedia.org/wiki/Proxy_auto-config (the string returned from findProxy use that format (we don't handle PAC files - just use the same string format returned from the PAC JavaScript code) and there is no way of specifying HTTPS. |
Thanks. Tried it, this uncovers the actual issie! Connecting to https google.com, as in the example code. Error: CERTIFICATE_VERIFY_FAILED. The proxy is https. It issues certificates, proxied, for everything we This puts the remote certificate (pub.dart) in the certificate chain, Our certificate is valid. The connection is tls 1.0. I am looking now for
If you can update the example I can try it. I expect that fixes it. If it In maven, this was done by importing our certificate into a trust store, On Wed, Feb 3, 2016, 11:59 AM Søren Gjesse [email protected] wrote:
|
I added our iron port PEM to the SecurityContext, and connected to https Now question becomes primarily, how to tell pub get to do the same? Follow up is why it must be added when we are trusted by a major root Npm works, as does the web. I don't think the certificate chain is being On Wed, Feb 3, 2016, 6:08 PM Chris Rodier [email protected] wrote:
|
@crodier The default root certificates used by the Dart VM is build-in, and is pulled from a separate repository (https://github.com/dart-lang/root_certificates/blob/master/certdata.pem), and you CA depend on is obviously not in that list. Regarding There is work in progress on using the root certificates installed on the machine instead of the build-in set, but it will take some time before that lands. |
Thanks for helping me! I agree. I need to say I think both are necessary, and will br prohibitive I will look into who our root authority is. How do I check that? On Thu, Feb 4, 2016, 10:28 AM Søren Gjesse [email protected] wrote:
|
In Chrome you can right-click on the green lock icon for the HTTPS connection, then click on the "Connection" tab and click "Certificate information". The click the "Details" tab which should have the "Certificate Hierarchy" at the top. |
On npm we can set strict-ssl false (on git http.sslVerify false) to disable SSL certificate verification. Something like that would be helpful in pub for situations like this one, right? |
This doesn't seem to be a This seems to be more of a feature request for Pub, namely to configure |
I just opened dart-lang/pub#1882 because I'm facing a similar issue with pub (no proxy, but self signed CA). I'd really like to see the ability to tell Dart to use a self signed CA, but at the least it'd be nice to be able to tell pub to accept one. However, this issue would be an issue with any Dart program I try to run on my machine that wants to do an HTTPS connection and has no way of knowing that I have a self-signed certificate I want it to trust. This will be a major issue for corporate users behind BlueCoat etc. |
@mkustermann - it's |
The command line VM has options for overriding the source of trusted root certificates. See: https://github.com/dart-lang/sdk/blob/master/runtime/bin/main_options.cc#L207 |
Sounds good. Should be able to use this with @crodier - if this is still an issue for you please try with Since this issue is so old I'll close for now and we can reopen if we get a report that this doesn't work. |
Hi, can we pass this argument along with flutter doctor ? |
Hi Natebosch, |
Android have option to use user cert store. I have included |
@yathit Could you file a new issue for that? |
I tested it and I replaced the link with import 'dart:io';
main() async {
HttpClient client = new HttpClient();
var request = await client.getUrl(Uri.parse('https://shop.io.mi-img.com/app/shop/img?id=shop_88f929c5731967cbc8339cfae1f5f0ec.jpeg'));
var response = await request.close();
print(response.headers);
client.close(force: true);
} I'm sure no proxy is set。 |
I am behind an *_Iron Port firewall *_in the office, on Windows. Could be me, but I found and tried 'https_proxy' and 'http_proxy', and versions of the Dart SDK from 1.12 to 1.15.0 Dev today, including 1.12, 1.13., 1.14, and 1.15.0 Dev, from 1/28/2016 (latest.)
I am trying to run the Dart, Angular2, getting started. Only getting packages from pub.dartlang.org.
On 15.0.0 from Dev today, the error is 407, Proxy Authentication Required..
The pub get trace logs are attached.
pub-get-proxy.zip
If I set https_proxy, get the same issue, I can set both without or with my password to the Iron Port proxy address. like https_proxy=iport:80, https_proxy=crodier:password@iport:80. Also with and without http_proxy, which has no impact on Dev.
The interesting bits:
I reviewed the alternative, manually downloading the packages, but not being able to run pub get is a major deterrent.
While I could investigate with the networking team, I doubt this leads to any changes in the proxy setup in my organization. It is also difficult to justify that investigation, with other tools working ok, and the proxy generally working, and being a vendor (Iron Port) firewall.
Dart looks to be an incredible platform, and I post in the hopes this is helpful. I also apologize, but I doubt I will be able to learn the code and work on the issue my self in the SDK etc. I can offer to re-test if there are changes to Dev, With guidance, I may be able to work on the sdk issue itself.
Best regards,
Chris
The text was updated successfully, but these errors were encountered: