Apache Web Server SSL 설정방법 - Ver 1.0-2008. 5
개정이력 버전개정일개정내용 Ver 1.0 2008 년 5 월 Apache Web Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다.
< 목차 > 1. Apache 서버에 OpenSSL 과 mod_ssl 의설치방법 1 2. Apache 서버에서개인키및 CSR 생성방법 3 3. 보안서버인증서설치 5 가. 발급인증서확인하기 6 나. A p a c h e 환경설정하기 6 4. 보안웹서버가동 7 5. 다른서버에 SSL 인증서와키복사하기 8
1. Apache 서버에 OpenSSL과 mod_ssl의설치방법 Apache 서버에서 SSL 통신을가능하게하려면 OpenSSL 과 mod_ssl 이필요합니다. 우선, 현재서비스중인 Apache 서버에 mod_ssl 이설치되어있는지를 httpd -l 옵션을사용하여 mod_ssl.c 또는 mod_ssl.so 가있는지확인하시기바랍니다. 만일설치되어있다면 Apache 서버의버전에맞는개인키생성및 CSR 생성방법과정으로이동하시기바랍니다. [ 그림 ] mod_ssl 설치확인예 OpenSSL 은 Apache 버전과 mod_ssl 의버전을확인한후에알맞은 OpenSSL 을설치해야합니다. 예를들어 Apache 1.3.3 버전에는 mod_ssl 2.1.6( 또는 2.1.7) 을설치해야하고, mod_ssl 2.1.6 은 OpenSSL 0.8.1b 와 0.9.1c 버전사이에서만동작합니다. 버전을확인하지않고 OpenSSL 과 mod_ssl 을설치하면 Apache 컴파일과정에서오류가발생합니다. Apache 지원버전및정보는 mod_ssl 소스의 README.Version 파일이나 www.openssl.org 사이트에서확인가능합니다. 1 OepnSSL 의설치 (www.openssl.org) - 압축풀기 $ gzip -cd openssl-0.9.6.tar.gz tar xvf - - config 실행 $./config$ make$ make installconfig prefix를주지않으면 /usr/local/ssl 디렉토리에설치됩니다. 다른디렉토리에설치할려면아래와같이실행합니다. $./config --prefix=/usr/local --openssldir=/usr/local/openssl 2 mod_ssl 의설치 (www.modssl.org) - 압축풀기 $ gzip -cd apache_1.3.19.tar.gz tar xvf $ gzip -cd mod_ssl-2.8.1-1.3.19.tar.gz tar xvf - 1 -
- mod_ssl 설정 $ cd mod_ssl-2.8.1-1.3.19 $./configure --with-apache=../apache_1.3.19 --with-ssl=../openssl-0.9.6 --prefix=/usr/local/apache 3 Apache 서버설정 (www.apache.org) $ cd../apache_1.3.x $ SSL_BASE=../openssl-0.9.6./configure --prefix=/usr/local/apache --enable-module=ssl $ make $ make certificate $ make install - 2 -
2. Apache 서버에서개인키및 CSR 생성방법 1 랜덤넘버생성 $ openssl md5 * > rand.dat 2 개인키 / 공개키키쌍생성 $ openssl genrsa -rand rand.dat -des3 -out key.pem 1024 Generating RSA private key, 1024 bit long modulus...++++++...++++++ e is 65537 (0x10001) Enter pass phrase for key.pem: ****** Verifying - Enter pass phrase for key.pem: ****** 여기서입력한 passw ord는 CSR 생성, 인증서설치, 보안서버가동에서사용되므로반드시기억하셔야합니다. 3 개인키확인 $ openssl rsa -noout -text -in key.pem Enter pass phrase for key.pem: ****** Private-Key: (1024 bit) modulus: 00:da:bf:f3:39:d7:c6:1f:bd:6f:a7:b8:aa:67:f2:... coefficient: 6b:26:51:9e:fb:77:cf:7e:d4:2a:a6:d2:7f:21:fa: 42:e4:7c:54:2e:5e:e9:fb:03:a6:25:d0:6a:fc:e9: e1:1b:45:82:61:c0:35:a9:50:25:0a:75:2a:f8:cc: 87:10:30:9d:bd:36:8e:4b:f6:55:0d:08:30:e8:55: e4:00:3b:ec 4 CSR 생성 해당하는모든입력은영문자와숫자만허용합니다. 예시를참조하세요. Country Name ( 국가코드 ) : KR State or Province Name ( 시 / 도 ) : Seoul Locality Name ( 구 / 군 ) : GangNam Organization Name ( 회사명 ) : KFTC Organizational Unit Name ( 부서명 ) : Digital Certificate Center Common Name ( 인증받을도메인주소 ) : www.yessign.or.kr $ openssl req -new -key key.pem -out csr.pem - 3 -
Enter pass phrase for key.pem: ****** Private-Key: (1024 bit) modulus: 00:da:bf:f3:39:d7:c6:1f:bd:6f:a7:b8:aa:67:f2:... coefficient: 6b:26:51:9e:fb:77:cf:7e:d4:2a:a6:d2:7f:21:fa: 42:e4:7c:54:2e:5e:e9:fb:03:a6:25:d0:6a:fc:e9: e1:1b:45:82:61:c0:35:a9:50:25:0a:75:2a:f8:cc: 87:10:30:9d:bd:36:8e:4b:f6:55:0d:08:30:e8:55: e4:00:3b:ec 5 yessign 에 CSR 제출 - 생성한 CSR 파일을텍스트편집기에서열면아래와같은형식의내용으로되어있습니다. - yessign SSL 홈페이지 (https://www.yessign.or.kr/ssl/) 에접속하셔서인증서발급요청을하시고 CSR 입력부분에해당내용을복사해서붙여넣으셔서사용하시면됩니다. -----BEGIN CERTIFICATE REQUEST----- MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh... BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== -----END CERTIFICATE REQUEST----- - 4 -
3. 보안서버인증서설치 SSL 웹서비스를제공하기위해서는보안서버인증서설치시에해당되는체인인증서를설치하여야합니다. 아래설치안내에따라서 보안서버인증서, 체인인증서 를모두웹서버에설치해야모든종류의웹브라우저에서서비스를문제없이제공할수있습니다. 보안서버인증서체인을웹서버에모두설치하기않으면, 웹브라우저에따라서는아래와같이보안경고창이발생할수있습니다. < Microsoft Internet Explorer 6.0 이하버전의경고창 > < Microsoft Internet Explorer 7.0 버전의경고화면 > - 5 -
가. 발급인증서확인하기 yessign SSL 홈페이지관리자로부터수신한이메일의첨부파일에는다음과같은 3종류의인증서가포함되어있습니다. - sslcert.cer : 발급된보안서버인증서 - sslca.cer : 보안서버체인인증서 - sslroot.cer : 보안서버루트인증서 나. Apache 환경설정하기 1 보안서버인증서인 sslcert.cer" 파일과 sslca.cer" 파일을 FTP 등을이용하여웹서버에업로드합니다. 2 환경설정 파일 (httpd.conf 또는 ssl.conf) 을 수정합니다. 환경설정 파일에서 SSL 설정과 관련된 부분은 [SSL Support], [SSL Global Context], [SSL Virtual Host Context] 세부분입니다. - [SSL Support] : SSL 지원에 대한 설정으로 기본 설정을 사용합니다. - [SSL Global Context] : SSL 환경에 대한 설정으로 기본 설정을 사용합니다. - [SSL Virtural Host Context] : SSL 인증서 설정 부분으로 아래 내용대로 설정 합니다. <VirtualHost _default_:443> # General setup for the virtual host DocumentRoot htdocs ## 웹문서루트경로 ServerName www.test.co.kr ## 인증받은도메인주소 ErrorLog logs/error_log ## 에러로그설정 TransferLog logs/access_log ## 접속로그설정 SSLEngine on ## SSLEngine 을 on 으로해야동작 # Server Certificate: SSLCertificateFile conf/ssl/sslcert.cer # Server Private Key: SSLCertificateKeyFile conf/ssl/key.pem ## SSL 서버인증서파일 ## SSL 서버인증서에대한개인키파일 # Server Certificate Chain: SSLCertificateChainFile conf/ssl/sslca.cer ## SSL 서버인증서발급자인증서파일 - 6 -
4. 보안웹서버가동 1 재설정한환경파일이적용되도록 Apache 서버를재가동합니다. $./apachectl startssl Apache/1.3.31 mod_ssl/2.8.19 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide us with the pass phrases. Server web:443 (RSA) Enter pass phrase: [ 개인키비밀번호입력 ] Ok: Pass Phrase Dialog successful. $APACHE/bin/apachectl startssl: httpd started 2 웹브라우저로웹서버를 https://" 프로토콜로접근하면브라우저하단에노란자물쇠아이콘 (Internet Explorer 일경우 ) 이표시되고해당아이콘을더블클릭하여인증서의경로가완전하게표시되는것을확인합니다. - 7 -
5. 다른서버에 SSL 인증서와키복사하기 1 3 절 에서설치한인증서와개인키파일을다른아파치서버에복사합니다. 2 3 절나항 과동일하게 SSL 과관련된환경설정을합니다. 3 4 절 의과정대로웹서버를재가동하고 SSL 적용을웹브라우저로확인합니다. - 8 -