본문 바로가기

IT 실무 (환경구성)

(4)
python 보안환경에서 구동하기, 인증서 문제(SSL_CERTIFICATE_VERIFY_FAILED)를 겪고 계신가요? python을 하다보면 인터넷망의 ssl 인증서를 변조해서 운영하는 회사를 만나게 된다. 이런 경우는 naver에 접속을 해도 naver인증서가 아닌 자사의 인증서로 변조되어 운영한다. 내부적으로는 보안담당자가 내부 정책에 의해 암호화된 패킷을 확인하려는 목적으로 이런 환경이 구성된다. 회사 내부의 보안을 위해서 흔히 그렇게 하는 장비가 제공된다. 그런데 이런 환경하에서 pip install을 실행하면 억울하게도 아래와 같은 오류를 만나게 된다. python에게는 해당 변조된 인증서가 신뢰받는 인증서가 아니기 때문에 인증서 검증이 실패하는 것이다. 일반 인터넷 환경에서는 만날 일이 없는 오류이다. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILE..
Python package를 폐쇄망에 설치하기 (pip3) 금융계열에서 python을 사용하면서 초기에 가장 어려웠던 것이 이 python package를 폐쇄망 서버에 설치하는 일이었다. 처음에는 얼마나 당혹스러웠는지 모른다. 대부분 인터넷에 연결된 서버에서 작업을 하는 환경에 익숙하기 때문에 참으로 곤란하다. 그리고 금융계 회사들은 패키지 반입도 쉽지 않은 경로를 통해 들여오다 보니 이 작업이 보통 난감해지는 게 아니다. 대략 tensorflow, pytorch, autokeras, scikit-learn, numpy 등 설치를 하고 나야 AI가 시작될 수 있지 않은가! 하지만 역시 알고 나면 크게 어려운 점은 사라진다. 참고로 필자는 python3.6을 주로 활용한다. 해당 버전을 선호하는 이유는 해외의 주요 공개 코드들이 이 버전 근처를 가장 잘 지원하기..
폐쇄망에서의 redhat(RHEL) 혹은 CentOS rpm /yum 패키지 설치 방법 Linux에서 과거 패키지 설치는 소스코드를 받아서 직접 gcc/g++로 컴파일하는 형태로 많이 설치하였다. 그러다가 rpm(redhat package manager)이 등장해서 조금더 편하게 설치하게 된 것이 yum이나 apt같은 것이 등장하면서 더욱더 전체 의존성을 잘 따져주면서 자동으로 인터넷에서 패키지를 다운받아 설치하거나 제거해주는 등 발전되었다. 그런데 이 모든 것이 폐쇄망 혹은 인터넷이 단절된 망 하에 들어가면 무용지물이 되어 버린다. 그리고 이런 상황에서 많은 엔지니어들이 시행착오를 거친다. 여기서는 몇가지 지식으로 이런 상황을 쉽게 돌파할 수 있는 방법을 가이드해본다. 대략 redhat 7.2버전에서 시험되었지만 전체적인 방법은 크게 다르지 않다. 그리고 여기서는 yum을 중심으로 설명한..
서버 인증서 설치의 내부 메카니즘/원리, 폐쇄망 엔지니어를 위한 글 인증서(Certificate)는 공개키 기반의 암호화 통신인 SSL(Secure Socket Layer)을 사용하는 엔지니어들에게 친숙하면서도, 사실은 깊게 들어가면 어려운 존재다. 해당 암호화 방식이 광범위하게 사용됨에 따라 같이 소개된 이 인증서에 대해 전체적으로 모든 것을 이해하여 작업하는 사람 보다는, 주어진 인증서 체계를 간신히 서버에 적용하여 돌아가는 수준으로 관리하는 경우가 흔하기 때문이다. 개별 소프트웨어들은 또 그들대로 이 복잡한 인증체계를 나름의 방식으로 소화하고 있어서 더욱더 그렇다. 자바가 다르고 윈도우가 다른 식이다. 이런 것들이 교차해서 문제가 생기는 상황에 맞닥뜨리면 그래서 이질적인 것들이 서로 더 혼란을 주게 되는 상황도 종종있다. 그러나 여기에 얽힌 전체 관계를 이해하면, ..

반응형