■ はじめに
* 色々な方法があるみたいだが、絞る
目次
【1】プロキシサーバ経由で接続 1)プロキシサーバ経由で接続するためのプロパティ 【2】設定方法 その1:起動パラメータからの設定 その2:ソースコードからの設定 その3:環境変数「http_proxy」「https_proxy」を利用する 【3】認証 1)ソースコードからの設定 補足1:環境変数「http_proxy」「https_proxy」について 補足2:プロパティ変数「http.proxyUser」「http.proxyPassword」について 【4】SSLプロキシ 1)構成
【1】プロキシサーバ経由で接続
1)プロキシサーバ経由で接続するためのプロパティ
# | プロパティ | 説明 | 備考 |
---|---|---|---|
1 | http.proxyHost | プロキシサーバのホスト名またはIPアドレスを指定 | - |
2 | http.proxyPort | プロキシサーバのポート番号 | デフォルト値:80 |
3 | https.proxyHost | SSLプロトコルによる接続で使用するプロキシサーバのホスト名またはIPアドレスを指定 | - |
4 | https.proxyPort | SSLプロトコルによる接続でプロキシサーバのポート番号 | デフォルト値:443 |
5 | http.nonProxyHosts | プロキシを省略して、直接到達するホストのリスト | ホストを複数指定する場合「|」で区切って設定 |
6 | java.net.useSystemProxies | SSLプロトコルによる接続でプロキシサーバのポート番号 | デフォルト値:false |
補足:https.nonProxyHosts はあるの?
A. なさげ
https://docs.oracle.com/javase/jp/7/api/java/net/doc-files/net-properties.html
より抜粋 ~~~~~~~~~~~~ HTTPS プロトコルハンドラは、HTTP プロトコルと同じ nonProxyHosts プロパティーを使用 ~~~~~~~~~~~~
【2】設定方法
その1:起動パラメータからの設定
java -Djava.net.useSystemProxies=true -Dhttp.proxyHost=XXX.XXX.XXX.XXX -Dhttp.proxyPort=8080 -Dhttps.proxyHost=XXX.XXX.XXX.XXX -Dhttps.proxyPort=8443 <アプリケーション>
その2:ソースコードからの設定
System.setProperty("java.net.useSystemProxies", "true"); System.setProperty("http.proxyHost", "XXX.XXX.XXX.XXX"); System.setProperty("http.proxyPort", "8080"); System.setProperty("https.proxyHost", "XXX.XXX.XXX.XXX"); System.setProperty("https.proxyPort", "8443");
その3:環境変数「http_proxy」「https_proxy」を利用する
http://int128.hatenablog.com/entry/20120611/1339416709
// Proxyを使うように「useSystemProxies=true」 java -Djava.net.useSystemProxies=true <アプリケーション>
【環境変数】
http_proxy='http://XXX.XXX.XXX.XXX:8080' https_proxy='http://XXX.XXX.XXX.XXX:8443'
【3】認証
1)ソースコードからの設定
Authenticator.setDefault(new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("admin", "password".toCharArray()); } });
補足1:環境変数「http_proxy」「https_proxy」について
* 以下を行ったが、例外「IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"」が発生でうまくいかず http_proxy='http://username:password@XXX.XXX.XXX.XXX:8080' https_proxy='http://username:password@XXX.XXX.XXX.XXX:8443'
補足2:プロパティ変数「http.proxyUser」「http.proxyPassword」について
// 以下は意味なし System.setProperty("http.proxyUser", "admin"); System.setProperty("http.proxyPassword", "password");
【4】SSLプロキシ
# SSLプロキシの証明書(公開鍵)をキーストアにインポートするだけ。 sudo keytool -import -trustcacerts -alias ssl_proxy -storepass changeit -file cacert.pem -keystore %JAVA_HOME%/jre/lib/security/cacerts
1)構成
+-----------+ +-----------+ +-----------+ +-----------+ | | http | | https | | https | | |Java appli |--------| SSL Proxy |-------| Internet |-------| Any (SSL) | | | 3128 | | 443 | | 443 | Server | +-----------+ +-----------+ +-----------+ +-----------+
参考文献
公式サイト
http://docs.oracle.com/javase/jp/7/technotes/guides/net/proxies.html
認証について
http://docs.oracle.com/javase/jp/7/technotes/guides/net/http-auth.html
一般サイト
http://glasses-se-note.com/java-proxy/
http://atomic.jpn.ph/prog/net/proxy.html
http://an1106na.hatenablog.com/entry/2016/09/15/131255
今後役に立ちそうなサイト
http://qiita.com/kaakaa_hoe/items/d4fb11a3af035a287972
関連記事
【ネットワーク】プロキシ / Proxy
https://dk521123.hatenablog.com/entry/2017/08/08/224300
プロキシサーバ / Squid ~ Squid for Windows編 ~
https://dk521123.hatenablog.com/entry/2017/11/12/211732
プロキシサーバ / Squid ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2017/06/23/223438
プロキシサーバ / Squid ~ Linux / Basic認証編 ~
https://dk521123.hatenablog.com/entry/2017/06/26/224311
プロキシサーバ / Squid ~ Linux / SSLプロキシ構築編 ~
https://dk521123.hatenablog.com/entry/2017/06/24/235123
プロキシサーバ / Squid ~ Linux / 設定ファイル編 ~
https://dk521123.hatenablog.com/entry/2017/08/15/234457
Squid に関するトラブルシュート
https://dk521123.hatenablog.com/entry/2017/08/10/235733
Linux で Proxy を設定するには
https://dk521123.hatenablog.com/entry/2023/11/24/000000
aptコマンド ~ プロキシ経由で使うには ~
https://dk521123.hatenablog.com/entry/2017/08/11/180933
Docker ~ Proxy環境下でDockerを使用する ~
https://dk521123.hatenablog.com/entry/2023/11/30/004707
SBT ~ Proxy環境下でSBTを使用する ~
https://dk521123.hatenablog.com/entry/2023/11/23/000000