본문 바로가기
서버관리

ssl 인증서 생성

by 코딩에서개발로. 2011. 2. 10.
반응형
(3) 인증서 생성

위에서 설치한 openssl 을 이용하여 인증서를 만든다.
인증서를 보관할 디렉토리를 정하고 해당 위치에서 명령어를 입력한다.

[root@localhost ~] cd /web/ssl-key/
[root@localhost ~] openssl genrsa -des3 -out ssl2010.key 1024
암호를 입력하라고 한다. 암호를 입력하고 꼭 기억해두자.
ssl2010.key 파일이 생성되었다. 개인키로서 암호화할때 이용된다.

이제 개인키로 CSR(Certificate Signing Request) 를 만들자.
CSR은 서명정보가 들어있는 파일이다.

[root@localhost ~] openssl req -new -key ssl2010.key -out ssl2010.csr
암호를 입력하라고 한다. 위에서 입력한 개인키 암호를 입력한다.
Country Name : 국가 - 예) KR

State or Province Name : /도/ - 예) Seoul or Kyunggi

Locality Name : /군 - 예) songpa or ganghwa

Organization Name : 회사명 - 예) dotname korea

Organizational Unit Name : 소속 - 예) developer

Common Name : 서버도메인 - 예) www.example.com

Email Address : 이메일 - 예) email@naver.com

A challenge password : 생략 (입력하지 않고 엔터)

An optional company name : 생략 (입력하지 않고 엔터)


ssl2010.csr 파일이 생성되었다. key 파일로 csr 파일을 추출한 것이다.

마지막으로 인증서를 만들 차례다.
[root@localhost ~] openssl x509 -in ssl2010.csr -out ssl2010.crt -req -signkey ssl2010.key -days 3560
암호를 물어본다. 위의 개인키 암호를 입력한다.
ssl2010.crt 파일인 인증서가 생성되었다.
인증서의 유효기간을 10년(3560일)로 설정했다.

3개의 파일을 잘 보관하자.


Listen 443 은 httpd.conf 의 Listen 80 과 같은 내용이다.
http 는 80번 포트로, https 는 443 포트로 접속된다. 방화벽 설정이 되어있다면 443 포트를 열어주자.

<VirtualHost_default_:433> 안 에 있는 설정들을 수정해야한다.

DocumentRoot 는 httpd.conf 와 같으면 된다.
ServerName 에는 127.0.0.1:443 으로 해주자.

SSLCertificateFile 에는 우리가 생성했던 인증서를 연결시켜줘야한다.
예) SSLCertificateFile "/web/ssl-key/ssl2010.crt"

SSLCertificateKeyFile 은 암호키
예) SSLCertificateKeyFile "/web/ssl-key/ssl2010.key"

그외...
Jk (mod-jk.so) 를 이용하여 Tomcat 과 연동하는 경우는
<VirtualHost_default_:433> 안 에도 JkMount 를 써주면 되겠다.
예)  JkMount /* ajp13
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이제 아파치를 실행하고 접속해보자.

아파이 ssl 설정시 아파치를 가동하면 비밀번호를 묻게 된다.
비밀번호 입력없이 실행되게 하기 위해서는 비밀번호를 파일로 생성후 파일을 읽어들여 구동되도록 변경한다.

# 비밀번호 파일 생성
vi /usr/local/apache/conf/ssl/passwd.sh

#!/bin/sh
echo "비밀번호"


chmod 700 /usr/local/apache/conf/ssl/passwd.sh


위와 같이 입력후 httpd.conf 파일을 수정한다.

# httpd.conf 파일 수정 (혹은 extra/httpd-ssl.conf)
vi /usr/local/apache/conf/httpd.conf

<IfModule mod_ssl.c>
..
..
# SSLPassPhraseDialog  builtin
SSLPassPhraseDialog  exec:/usr/local/apache/conf/ssl/passwd.sh
</ifModule>

httpd.conf 파일 내용중
SSLPassPhraseDialog builtin을 위에서 저장한 비밀번호 파일 경로로 변경한다.
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/passwd.sh


변경 완료후.. 아파치 실행 테스트
/usr/local/apache/bin/apachect1 startssl


1. apache 비밀번호를 파일로 생성
2. apache 구동시 비밀번호를 파일에서 입력되도록 변경
3. apache 실행 확인.


반응형