인증서

인증서란 인터넷에서 자기를 증명하기 위한 정보이다1). 공인 기관에서 인증한 공인인증서자체 서명된 인증서로 두 종류가 있다. 일반적으로는 인터넷 뱅킹을 위해서 공인인증서를 이용한다. 인증서는 최상위 인증기관에서 원하는 기관에 하위 인증서를 작성해 주는 계층 구조로 되어 있다. 최상위 인증기관은 인증을 받을 다른 기관이 없으므로 스스로 서명한다. 자기가 서명한(self-signed) 인증서를 만드는 것은 누구나 할 수 있지만, 이를 공식적으로 인정받은 일부 기관의 인증서만 일반적인 인증서로 사용할 수 있다.

이 문서에서는 우분투에서 openssl을 이용하여 SSL 암호화에 사용하기 위한 자체 서명한 루트 인증서를 생성하고, 이를 바탕으로 하위 인증서를 만드는 과정을 작성한다.

다음은 자기 서명한 인증서를 만드는 명령이다. aaa.yourdomain.com, bbb.yourdomain.com, … 등 여러 서브 도메인에서 사용할 수 있도록 CN(Common Name) 부분에서 와일드카드를 넣은 이름(*.yourdomain.com)을 입력하였다.

:!: 인증 파일은 현재 위치에 생성되니 그 전에 적당한 위치에 폴더를 만들고 이동한다.

:!: 다음 코드 중 3650은 유효기간으로 10년간 유효하다.

openssl genrsa 2048 > ca.key
openssl req -new -x509 -nodes -sha1 -days 3650 -key ca.key > ca.crt
openssl x509 -noout -fingerprint -text < ca.crt > ca.info
cat ca.crt ca.key > ca.pem
chmod 400 ca.key ca.pem

인증에는 여기서 ca.crt 파일만 사용한다.

설치

여기서 생성한 인증서는 비공식적으로만 사용할 수 있는 인증서이다. 이 인증서를 이용하여 접속하면 대부분의 인터넷 브라우저에서 경고를 띄우며, 윈도우 DAV 클라이언트에서도 접속을 거부한다. 이를 해결하기 위해서는 해당 인증서를 클라이언트에 설치하여야 한다.

:!: 반드시 https라고 직접 쳐서 들어간다.

  1. 관리자 모드IE 실행
  2. ssl을 적용한 사이트에 접속
  3. 이 웹 사이트를 계속 탐색을 선택
  4. 주소표시줄에 인증서 오류(빨간색 방패 모양에 x표시)를 선택
  5. 인증서 보기 선택
  6. 인증서 설치 선택
  7. 인증서 가져오기 마법사에서
    1. 저장소 위치에서 그냥 다음 선택
    2. 모든 인증서를 다음 저장소에 저장 선택
    3. 찾아보기를 누르고 신뢰할 수 있는 루트 인증 기관 선택
    4. 다음 및 마침
  8. IE를 닫고 다시 열어서 다시 접속하였을 때 인증서 오류가 없으면 성공

하위 인증서란 다른 인증서를 통해 인증을 받은 인증서를 말한다. 다음 코드는 이 문서에서 생성한 루트인증서를 이용하여 하위 인증서를 만드는 방법이다. 다음 코드는 하위 인증서를 만드는 두가지 방법이다. 위 방법을 이용하면 인증서를 이용할 때 암호를 입력해야 한다. 아래 방법은 암호 입력을 하지 않고 이용할 수 있다. 장단점이 있으니 편한 쪽을 이용하자. 서버 쪽에서 인증서를 이용할 때, 암호 입력이 필요한 경우는 프로그램이 자동으로 실행되지 않으니 참고한다. 아래 2줄은 어떤 방법으로 만든 키든지 동일하다.

openssl genrsa -des3 -out client.key 1024 #암호 필요
openssl genrsa -out client.key 2048       #암호 불필요

openssl req -new -days 3650 -key client.key -out client.csr
openssl ca -in client.csr -out client.crt -keyfile ca.key -cert ca.crt -outdir .

vpn을 이용할 경우 하위 인증서는 서버 인증서와 클라이언트 인증서가 별도로 필요하고, dh1024.pem이라는 파일도 별도로 필요하다. 서버 인증서는 하위인증서 만드는 법과 같고, dh1024.pem은 다음과 같이 생성한다.

openssl dhparam -out dh1024.pem 1024

댓글을 입력하세요. 위키 문법이 허용됩니다:
U K J Q L