事象
プロキシ配下でeclipseからマーケットプレイスなどでモジュールを引っ張ってこようとしても407エラーなどになってしまう。
他にも、gradleで以下の様なエラーが発生してしまう。(※1)
Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-6.3-bin.zip'. Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 authenticationrequired"
※1 407はプロキシ認証のエラーであるが、実はそこまで届いていなかった。
原因
Java8以降でトンネリング経由のbasic認証が止められてしまっているため
確認ポイント
$JAVA_HOME/jer1.8.0_XXX/lib/net.propertiesの以下をコメントアウトする
jdk.http.auth.tunneling.disabledSchemes=Basic
eclipseの内蔵JDKを用いている場合も同様である。
なお、Java11以降は、$JAVA_HOME/conf/net.propertiesに移動している。
Proxomitron ,BlackJumboDog, MAPEなどのソフトを介して通信する
eclipseのネットワーク設定が怪しい場合、外部との通信を別ソフトに任せる。
構築されているプロキシ環境など、通常net.propertiesを設定変更すればうまくいきそうなのに駄目な環境が存在した。
その際、Windows上のプロキシを経由すると何故かうまくいく場合があった。
(技術的な裏付けは行えず仕舞いではあるが・・・)
補記事項
- 設定 の [一般] - [ネットワーク接続]で正しくネットワーク設定されているか確認すること。
ネットワーク接続のところでアクティブ・プロバイダー(※2)のとこなど設定方法が分からないまま適当に設定しているのであれば、見直すこと。また、同じ設定を一度違う値に書き換えて、再度元の設定に書き換えるとうまくいくケースがあった。(※3)
- 環境変数にproxy_httpなどが設定されていた場合、邪魔になる場合があるので怪しむこと
但し、上記で記載したプロキシソフトがその様な設定を入れる場合もある
- MavenやGradleなどでは別途そちらの環境設定ファイルに記述してあげないといけない場合がある。
(ここの挙動差異がいまいち何がトリガーになっているのかきちんと理解できていない…)
※2 アクティブ・プロバイダーの意味
※3 長年プロキシ配下で利用しているが、eclipseのネットワークの設定は怪しい動きすること多い
参考リンク
兵庫県電子入札共同運営システム : HTTPS トンネリングの Basic 認証無効化への対処
https://www.nyusatsu.e-hyogo.jp/hyogo/files/https_tunneling.pdf