어느 정도의 규모가 있는 회사는 보통 보안 및 관리상의 이유로 proxy서버를 많이 사용한다. 각 툴마다 설정하는 방법등이 상이해서 매번 설정에 애를 먹기에, 여기에 정리해 보고자 한다.
general
대부분의 shell command등은 환경변수 http(s)_proxy 을 설정하는 것만으로 대부분 잘 동작한다.
`~/.bash_profile’ 에 아래 내용을 추가.
1 | export http_proxy=http://<ip:port> |
npm
~/.npmrc
에 아래 내용을 추가
1 | registry=http://registry.npmjs.org/ |
pip
~/.pip/pip.conf
에 아래 내용 추가하거나 pip install --proxy http://<ip:port> ipython
이런식으로 불러주면 된다.
1 | [global] |
bower
~/.bowerrc
에 아래 내용 추가.
1 | { |
cert
회사 proxy에 사설 인증서를 사용하는 경우가 있는데(우리회사 –), 이런 경우 인증서가 공인인증기관에서 인증된 것이 아니기 때문에 https handshake에서 에러가 난다. 해킹 기법의 하나인 main in the middle 을 회사가 하고 있는 것이다. 이런 회사의 경우 모든 패킷은 회사가 들여다 볼 수 있기때문에 privacy 침해의 소지가 다분하다.
이럴때 https 통신이 실패하지 않게 하려면 어떤 설정이 필요한지 각각의 경우에 대해서 정리해 봤다.
Mac
맥은 기본적으로 사설 인증서를 키체인에 등록하고 그 인증서를 System Keychains
에 추가한다. 그 인증서를 선택하여 always trust
로 해준다. 이렇게 하면 Chrome이나 curl등이 cert error를 내는것을 해결할 수 있다.
Java
JDK가 설치된 폴더의 cacerts 파일에 keytool을 이용해서 추가해주면 된다. 아래처럼
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/security$ sudo keytool -import -keystore cacerts -file ~/Desktop/samsung.cer
python
python의 cacert가 위치한 파일을 찾아서 samsung.cer을 추가
1 | # find cacert.pem in vritualenv direcgtory |