SW 개발

[Linux Admin] 리눅스에서 ssl https 사설인증서 사용하기

. . . 2021. 5. 13. 15:18
반응형

회사에서 리눅스 PC 에서 https ssl 인증서 관련내용하여 인터넷이 정상적으로 되지 않았다. 관련하여 내용을 정리한다.

상황

  1. 회사에서 발급한 컴퓨터(노트북)은 인터넷을 할때 아무이상없이된다.
  2. 추가로 발급받은 리눅스에서는 네트워크 통신할때마다 ssl certification 관련 경고가 뜨거나 아예 네트워크가 되지 않는다. 1. 특히 브라우져의 경우 안전하지 않은 웹? 연결? 이런메시지가 뜨면서 브라우징이 안된다.

문제의 원인

회사에서 네트워크 감시를 하면서 생기는 이슈.

이런저런 인터넷 검색결과 회사에서 네트워크 감시, 검열을 위해서는 프록시 서버를 거쳐 네트워크가 되도록 구성해야한다. (네트워크 통로를 한개 중간에 끼워넣는다고 생각하면될것 같다.), 프록시 서버를 거치는 동안 사용할 네트워크 인증서(루트기관인증서)가 제대로 OS에 인스톨이 되어있어야 한다.

정말 잘해주신 설명

http://blog.securekim.com/2019/03/bash-gradle-python-wget-nodejsnpm-apt.html 에서 정말 잘 설명해주심

문제 해결방법

  • 방법1) 어플리케이션에서 ssl 관련 사설인증서를 사용하지 않도록 하기 - http://blog.securekim.com/2019/03/bash-gradle-python-wget-nodejsnpm-apt.html 페이지에 각 명령어마다 ssl 인증서 피하는방법을 자세히 설명해주심. - 가장간단한 방법이긴하나 결국 문제가생긴다. - 내부 호출되는 쉘스크립트나 하위 어플들에서 호출되는것들을 일일히 다 수정하거나, 사용 하는 어플들마다 문제가 생길때마다 일일이 해당 ssl 옵션을 꺼야한다.
  • 방법2) OS에 ssl 관련 사설인증서를 설치한다. - 근본적인 해결책일것 같다. - OS에 ssl 사설인증서를 설치하면, 어플리케이션마다의 ssl 옵션등을 건들이지 않아도 된다.

인증서 추출하기

아마 회사에서 이미 제공받은 컴퓨터에는 인증서가 설치되어있을것이다. (관리 팀에서 노트북지급받았을때 인증서를 알아서 설치하라고 하지 않았으면, 인증서가 설치되어있을것이다.) 만약, 인증서 설치가 안되어있다면 관리팀에 사설인증서를 달라고 요구하여 직접 설치하면 될듯하다.

  • 사설인증서를 요구해도 주지않는 회사의 경우 알아서 사설인증서를 구해서 써야한다. ㅠㅠ

윈도우에서 인증서빼기

이미 인증서가 설치되어있다면(회사에서 발급받은 컴퓨터가 네트워크가 정상동작하는상황이라면 ) 다음의 순서대로 인증서를 추출하자

certmgr.msc 동작화면

  1. cmd 에 certmgr.msc 명령어 실행
  2. 신뢰할 수 있는 루트인증 기관인증서 에서 적당한 인증서선택 (회사이름으로 된 인증서가 보일것이다.) 후 내보내기
  3. 인증서 내보내기 1. cer 로 내보내진다. 파일이름은 편한대로 지정하자. (cer 확장자로 저장된다.) 2. 내보낼때 base64 X.509 Cert 로 한다. base64 인코딩으로 되어있어야 관리가 간단하다.

base64 선택 옵션

리눅스OS에 사설인증서 설치하기

윈도우에서 추출? 한 사설인증서를 리눅스에 설치한다.

인증서 변환

windows 에서 cer 형식으로 되어있는 인증서를 crt 형식으로 변환한다. (리눅스에서 openssl 을 이용하여 간단하게 변환가능하다)

penssl x509 -in your-company-CA.cer -out your-company-CA.crt

인증서 설치

/usr/share/ca-certificates/extra 경로에 위에서 변환 한 crt 파일들을 카피하자.

# 다음과 같이 copy 한다.
sudo mkdir /usr/share/ca-certificates/extra
sudo cp -rf your-company-CA.crt /usr/share/ca-certificates/extra/
sudo chmod 644 /usr/share/ca-certificates/extra/*

카피한 인증서들을 OS 에 설치한다. sudo dpkg-reconfigure ca-certificates 명령어를 통해 설치할 수 있다.

실제 동작화면

  • yes 를 누르고, 위에서 카피한 인증서를 선택하면 OS에 설치된다.

해당명령어를 보면 다음과같은 코멘트가 있다.

This package installs common CA (Certificate Authority) certificates in /usr/share/ca-certificates. . Please select the certificate authorities you trust so that their certificates are installed into /etc/ssl/certs. They will be compiled into a single  /etc/ssl/certs/ca-certificates.crt file.
  • 리눅스내의 사설인증서 관련한 곳들에 알아서 인증서들을 impot 시키는듯 하다.

원본 자료 출처

네트워크 잘되면 끗

반응형