반응형
(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
#!/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>
<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 실행 확인.
반응형