OpenSource

설치 package의 Proxy 처리 방법(bash, gradle, yarn...등)

아르비스 2020. 4. 29. 14:34

각 프로그램별 정리를 해 보았습니다.

SERVER 는 프록시 서버 + 포트
CERT 는 인증서 명을 뜻합니다.

strict ssl false 어쩌고 하는 옵션은 모두 인증서 검사를 안하겠다는 것이며,
MITM 의 위험을 감수한다는 뜻입니다. (어차피 프록시 서버에서 MITM 할거지만..)

기본적으로 우분투 대상이며, 오타가 있을 수 있으니 유의하시기 바랍니다.


** Bash

sudo vi /root/.bashrc
export http_proxy="SERVER"
export https_proxy="SERVER"
export ftp_proxy="SERVER"

sudo mkdir /usr/share/ca-certificates/extra
sudo cp CERT /usr/share/ca-certificates/extra/CERT
sudo dpkg-reconfigure ca-certificates

cat CERT >> /etc/ssl/certs/ca-certificates.crt


** Gradle

C:\Users\YOURID\.gradle\gradle.properties 생성

systemProp.proxySet="true"
systemProp.http.keepAlive="true"
systemProp.http.proxyHost=SERVERHOST
systemProp.http.proxyPort=SERVERPORT

systemProp.https.keepAlive="true"
systemProp.https.proxyHost=SERVERHOST
systemProp.https.proxyPort=SERVERPORT
systemProp.https.proxyUser=USERNAME
systemProp.https.proxyPassword=PASSWORD
systemProp.https.nonProxyHosts="local.net|some.host.com"

keytool -importcert -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -trustcacerts -alias "My PROXY" -file CERT


** Python (Win)

https_proxy 환경 변수에 프록시 서버 주소 설정
PIP_CERT 환경 변수에 인증서 설정

잘 안되는 경우
pip --cert CERT install <원하는 패키지>



** wget

vi ~/.wgetrc
use_proxy=yes
http_proxy=SERVER
https_proxy=SERVER
ca_certificate=CERT


** nodejs

sudo npm config set https-proxy SERVER --global
sudo npm config set http-proxy SERVER --global
sudo npm config set cafile CERT

그래도 잘 안될 땐 눈물을 머금고
sudo npm config set strict-ssl false --global
sudo npm config set registry http://registry.npmjs.org/ --global

윈도우에서 에러 날때 :
VCTargetsPath 환경변수에 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
npm install java

** apt-get

sudo vi /etc/apt/apt.conf
Acquire::http::Proxy "SERVER";
Acquire::https::Proxy "SERVER";

우분투에서 뭔가 잘 안된다면 kr.archive.ubuntu 를 ftp.daum.net 으로 변경해 봅시다.
sudo vi /etc/apt/sources.list
:1,$ s/kr.archive.ubuntu.com/ftp.daum.net/g

sudo apt-get update

** cURL

sudo vi /etc/ssl/certs/ca-certificates.crt 파일에
CERT 내용 add ( cat CERT >> /etc/ssl/certs/ca-certificates.crt )

** git

sudo git config --global http.proxy SERVER
sudo git config --system http.sslcainfo CERT


** npm

npm config set proxy SERVER
npm config set https-proxy SERVER
npm config set cafile CERT

npm --add-python-to-path='true' --debug install --global windows-build-tools

그래도 잘 안되면 눈물을 머금고
npm config set "strict-ssl" false -g

** yarn

yarn config set proxy SERVER
yarn config set https-proxy SERVER

그래도 잘 안되면 눈물을 머금고
yarn config set "strict-ssl" false -g

set NODE_TLS_REJECT_UNAUTHORIZED=0

Export NODE_TLS_REJECT_UNAUTHORIZED=0

 

** Android Studio (Win)

기본적으로 프록시 설정이 쉽게 잘 되어 있습니다만... 인증서 설정은 아니죠

C:\Program Files\Android\Android Studio\jre\bin>keytool.exe -import -alias proxycert -file CERT -keystore ../jre/lib/security/cacerts