Skip to content

Instantly share code, notes, and snippets.

@hidez8891
Created October 10, 2018 12:54
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hidez8891/17741b20e3c456743d0e8a0b5c1c308b to your computer and use it in GitHub Desktop.
Save hidez8891/17741b20e3c456743d0e8a0b5c1c308b to your computer and use it in GitHub Desktop.
Proxyでつらい人のためのメモ書き

Proxyでつらい人のためのメモ書き

様々な理由で、Proxyを通してコマンドを使わなきゃいけない人のためのメモ。

環境変数

WindowsでもLinuxでも同じ。
これで、だいたいのコマンドは行ける。

# cmd.exe
set HTTPS_PROXY=https://proxy:port
set HTTP_PROXY=http://proxy:port
set FTP_PROXY=ftp://proxy:port

ただ、これだとProxyを必ず通ってしまうので、通したく無い相手は NO_PROXY に設定する。
範囲指定はできないので、変数展開を使って、それっぽくやる。

# bash
no_proxy="$(echo 192.168.1.{10,11})"
no_proxy+=" $(echo 192.168.2.{41,42,43})"
export NO_PROXY="127.0.0.1,localhost,${no_proxy// /,}"

証明書

Linuxはいつものところに置けば、ほとんどのコマンドは参照してくれる。
Windowsの証明書ストアは参照してくれないので、コマンドごとに回避する必要がある。

# ubuntu
cp proxy_cacert.crt /usr/share/ca-certificates
update-ca-certificates

ただ、見てくれない環境もあったので、mozillaフォルダ等に直接置いて回避する場合もある。

# busybox
cp proxy_cacert.crt /usr/local/share/ca-certificates/mozilla/
update-ca-certificates

設定ファイル

設定ファイルに書けば、見てくれるコマンドもある。
面倒なので、証明書を無視するように設定する。

cURL

# .curlrc
proxy="http://proxy:port"
insecure

npm

#.npmrc
proxy="http://proxy:port"
strict-ssl=false

git

#.gitconfig
[http]
  proxy = http://proxy:port
  sslVerify = false
[url "https://"]
  insteadOf = git://

コマンドオプション

設定ファイルに書かなくても、コマンドオプションで設定できる物もある。
環境を汚さずに使うことができる。

cURL

curl -k https://target_url

AWS CLI

aws --no-verify options...

その他

RubyGems

RubyGems の場合、環境変数でCA証明書(PEM形式)を指定することができる。

# cmd.exe
set SSL_CERT_FILE=C:/CertDirectory/path/proxy_cacert.pem

Logstash

Logstash の Output を Proxy 経由でやりたい場合は、設定する必要がある。

output {
  elasticsearch {
    hosts => ["http://elasticsearch_server_path:port"]
    index => "elasticsearch-index"
    proxy => "http://proxy:port"
  }
}

cacert の設定もあるけど、証明書をうまく読み込んでくれなかった・・・

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment