3. 인증서 관련 작업

다음 절은 비밀키 파일, CSR 및 자필 서명 인증서를 생성하는데 포함된 단계들을 다룬다. CA가 서명한 인증서를 얻으려면 CSR을 생성할 필요가 있으며 그렇지 않은 경우 자필 서명 인증서를 생성할 수 있다.

3.1. 비밀키 생성하기

비밀키를 만들기 위해서는 OpenSSL 툴킷을 아파치와 함께 설치 및 설정해야 한다. 다음 예는 디폴트로 /usr/local/ssl/bin 디렉토리내에 설치된 OpenSSL command line 도구를 사용하는데 이 도구를 포함하는 디렉토리가 $PATH 변수에 추가되어 있다고 가정한다.

삼중 des 암호화 표준(추천된다)을 사용해 비밀키를 생성하려면 다음 명령을 실행시킨다:

   openssl genrsa -des3 -out filename.key 1024 

pass phrase를 입력 및 재입력하라는 지시 메세지를 볼 것이다. 삼중 des 암호화를 사용한다고 선택한다면 cold start로 SSL 서버를 시작할 때마다 패스워드를 묻는 지시 메세지를 볼 것이다 (restart 명령을 사용할 때는 이러한 메세지를 보지 못할 것이다). 어떤 사람은 패스워드 프롬프트을 귀찮게 생각할 수 있는데 특히 휴식 시간에 시스템을 시동할 필요가 있는 경우가 그렇다. 또는 시스템이 이미 충분히 안전하다고 믿을 수 있기 때문에 패스워드 프롬프트가 나타나지 않도록 한다면(따라서 삼중 des 암호화가 아니다) 아래의 명령을 사용해라. 오히려 단지 512 비트 키를 생성하려고 한다면 명령 끝부분의 1024를 생략해라. OpenSSL은 디폴트로 512 비트가 될 것이다. 더욱 작은 키를 사용한다면 약간 빠르겠지만 더욱 보안에 취약하다.

삼중 des 암호화를 사용하지 않고 비밀키를 생성하려면 다음 명령을 실행시킨다:

   openssl genrsa -out filename.key 1024

기존 비밀키에 패스워드를 추가하려면 다음 명령을 실행시킨다:

   openssl -in out filename.key -des3 -out newfilename.key

기존 비밀키로부터 패스워드를 제거하려면 다음 명령을 실행시킨다:

   openssl -in filename.key -out newfilename.key

Note: 특별히 지정되지 않는다면 비밀키는 현재 디렉토리내에 생성될 것이다. 이를 다루는 손쉬운 세가지 방법이 있는데 OpenSSL이 경로에 있다면 키 파일을 저장하도록 명시한 디렉토리(RPM 또는 소스 파일을 사용해 아파치를 설치했다면 각각 /etc/httpd/conf/ssl.key 또는 /usr/local/apache/conf/ssl.key 가 디폴트이다)에서 이를 실행시킬 수 있다. 다른 방법은 생성된 디렉토리에서 정확한 디렉토리로 파일을 복사하는 것이다. 마지막으로 특히 명령을 실행시킬 때 (예를들면 openssl genrsa -out /etc/httpd/conf/ssl.key/filename.key 1024) 경로를 지정할 수도 있다. 어떤 방법을 사용하든 별 문제는 없다.

OpenSSL 툴킷에 대해 더 많은 정보를 얻기 위해서 OpenSSL WebSite를 참조해라.

3.2. CSR 생성하기

CA가 서명한 인증서를 얻기 위해서는 CSR을 생성할 필요가 있다. 이 목적은 전체 비밀키를 보내거나 모든 기밀 정보를 손상시키지 않고 인증서를 생성할 수 있을만큼 충분한 정보를 CA에 보내려는 것인데 CSR은 도메인 이름, 소재지 정보 등과 같은 인증서에 포함될 수 있는 정보를 포함한다.

Note: 비밀키 생성과 요청을 동시에 하기 위해 다음 명령을 실행시킨다:

   openssl genrsa -des3 -put filename.key 1024

3.3. 자필 서명 인증서 생성하기

CA가 서명한 인증서를 얻으려 한다면 자필 서명 인증서를 생성하는 것은 필요하지 않지만 이는 매우 간단하다. 필요한 것은 비밀키와 보호하려고 하는 서버 이름(fully qualified domain name)이다. 소재지 정보, 공통 이름(도메인 네임), 조직 정보 등에 대한 지시 메세지를 볼 수 있는데 OpenSSL은 여기서 많은 자유를 준다. 인증서가 정확히 작동되기 위해 필요한 필드는 도메인 네임 필드로 이 필드가 없거나 부정확하다면 브라우저로부터 Certificate Name Check이라는 경고 메세지를 받을 것이다.

자필 서명 인증서를 생성하기 위해서는 다음 명령을 실행시킨다:

   openssl req -new -key filename.key -x509 -out filename.crt

3.4. 웹서버 인증서 설치하기

지금까지 지시들을 잘 따랐다면 이 시점에서 아무 문제도 없어야 한다. CSR을 CA에 보내고 인증서를 아직까지 받지 못했다면 잠시 쉴 수 있을 것이다! 자필 서명 인증서를 사용하거나 인증서를 받았다면 다음을 계속할 수 있다.