8 이제 SSL 인증서의설치가완료되었습니다. Ⅵ 장으로이동하셔서실제웹페이지를어떻게수정해야하는지알아보겠습니다. 2.2 Apache 서버에서보안서버구축하기 가. Apache 서버에 OpenSSL 과 mod_ssl 의설치방법 Apache 서버에서 SSL 통신을가능하게하기위해서는 OpenSSL 과 mod_ssl 이필요합니다. 우선, 현재서비스중인 Apache 서버에 mod_ssl 이설치되어있는지를 httpd l 옵션을사용하여 mod_ssl.c 또는 mod_ssl.so 가있는지확인하시기바랍니다. 만일설치되어있다면 Apache 서버의버전에맞는개인키생성및 CSR 생성방법과정으로이동하시기바랍니다.
< 그림 3 3> 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 컴파일과정에서오류가발생합니다. mod_ssl 은반드시 Apache 버전에맞는것을설치하셔야하며 www.modssl.org 에서 Apache 버전을확인한후그에맞는 mod_ssl 을다운받아설치하시기바랍니다. mod_ssl 에서지원하는 apache 버전및 OpenSSL 의버전은 mod_ssl 소스의 README.Versions 에서확인할수있으며, www.openssl.org 에서도확인할수있습니다. 1 OpenSSL 의설치 (www.openssl.org) 압축풀기 $ gzip cd openssl 0.9.6.tar.gz tar xvf $./config$ make$ make installconfig prefix 를주지않았을때에는 /usr/local/ssl 디렉토리에설치가됩니다. 다른디렉토리에설치를하고자한다면다음과같이합니다. $./config prefix=/usr/local openssldir=/usr/local/openssl OpenSSL 의실행파일은 /usr/local/ssl/bin 에설치되고인증서비스를위한파일들은 /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 파일의다운로드와압축풀기가끝나면 mod_ssl 설정을합니다. 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 나. Apache 1.3.X 버전에서보안서버구축하기 (1) 개인키생성및 CSR 생성방법 1 랜덤넘버생성 $ openssl md5 * > rand.dat 2 키쌍생성 $ openssl genrsa rand rand.dat des3 out 1024 > key.pem 개인키비밀번호를입력하며반드시기억해야합니다. ( 암호를분실할경우 SSL 사용을위한 apache 를구동할수없습니다 )
3 생성된키쌍을이용하여 CSR 생성 $ openssl req new key key.pem > csr.pem 여기서 key.pem 은단계 2 에서생성한키이름이며 csr.pem 은출력 CSR 파일의이름입니다. 다음정보를입력하라는메시지가나타납니다. ( 모든내용은영문으로작성해야하며, 아래는입력예입니다 ) Country( 국가코드 ) KR State/province ( 시 / 도의전체이름 ) Seoul Locality( 시, 구, 군등의이름 ) : Songpa gu Organization( 회사이름 ) : Korea Information Security Agency Organization Unit( 부서명 ) : Policy Development Division Common Name (host name + domain name) : www.kisa.or.kr " 추가속성 " 을입력하라는메시지가나타나면그냥넘어가셔도무방합니다 4 CSR 제출생성된 CSR( 예 :csr.pem) 의내용은다음과같습니다. BEGIN CERTIFICATE REQUEST MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNAQkB FgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV1LQG fcsh8neheoixgwmcplrhtp87paa0xvgpvrqujcgstrlqsd8lcyvvkoaytnucawea AaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9 BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== END CERTIFICATE REQUEST CSR 내용을인증기관에게메일로송부하거나인증서신청화면에붙여넣으신후인증서신청을진행하시면됩니다. 인증기관의발급절차에따라서인증서가발급됩니다 (2) 인증서설치방법 1 메일로받은인증서를복사하여파일로저장합니다.( 예 : Cert.pem)
BEGIN CERTIFICATE MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0Z TEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNA QkBFgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV 1LQGfcSh8nehEOIxGwmCPlrhTP87PaA0XvGpvRQUjCGStrlQsd8lcYVVkOaytNUCAwE AAaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9 BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== END CERTIFICATE 2 Apache 서버의적절한위치에저장합니다. 3 환경설정파일 (httpd.conf 또는 ssl.conf) 을수정합니다. <VirtualHost _default_:443> # General setup for the virtual host DocumentRoot /Apache/htdocs ServerName www.kisa.or.kr:443 ServerAdmin admin@kisa.or.kr ErrorLog logs/error_log TransferLog logs/access_log SSLCertificateFile /Apache/ssl/cert.pem 인증서파일경로 SSLCertificateKeyFile /Apache/ssl/key.pem 개인키파일경로 4 Apache 서버를재구동합니다../apachectl startssl Apache 서버에서 SSL 을사용하기위한시작명령어인 startssl 을실행하면개인키의비밀번호를묻는데, 이비밀번호는이전의설치과정 개인키생성및 CSR 생성방법 중 2 키쌍생성시입력한개인키비밀번호를입력하시면됩니다. 5 이제 SSL 인증서의설치가완료되었습니다. Ⅵ 장으로이동하셔서실제웹페이지를어떻게수정해야하는지알아보겠습니다. 다. Apache 2.X 버전에서보안서버구축하기 (1) 개인키생성및 CSR 생성방법 1 랜덤넘버생성개인키생성시사용할랜덤정보를생성합니다. 생성된 rand.dat
파일이중요하지않다고판단될때, 언제든지이파일을삭제, 변경할수있습니다. $ openssl sha1 * > rand.dat 또는 $ cat file1 file2 file3 > rand.dat 2 키쌍생성 $ openssl genrsa rand rand.dat des 2048 > key.pem 개인키비밀번호를입력하며반드시기억해야합니다. ( 암호를분실할경우 SSL 사용을위한 apache 를구동할수없습니다 ) 개인키를분실하신경우, 백업된개인키를사용해야하므로, 생성한개인키의백업복사본은별도의저장매체에보관하여주시기바랍니다. 3 생성된키쌍을이용하여 CSR 생성 $ openssl req new key key.pem out csr.pem 여기서 key.pem 은단계 2 에서생성한키이름이며 csr.pem 은출력 CSR 파일의이름입니다. 다음정보를입력하라는메시지가나타납니다. ( 모든내용은영문으로작성해야하며, 아래는입력예입니다 ) Country( 국가코드 ) : KR State/province ( 시 / 도의전체이름 ) : Seoul Locality( 시, 구, 군등의이름 ) : Songpa gu Organization( 회사이름 ) : Korea Information Security Agency Organization Unit( 부서명 ) : Development Division Common Name (host name + domain name) : www.kisa.or.kr " 추가속성 " 을입력하라는메시지가나타나면그냥넘어가셔도무방합니다. 4 CSR 제출생성된 CSR( 예 :csr.pem) 의내용은다음과같습니다.
BEGIN CERTIFICATE REQUEST MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNAQkB FgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV1LQG fcsh8neheoixgwmcplrhtp87paa0xvgpvrqujcgstrlqsd8lcyvvkoaytnucawea AaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9 BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== END CERTIFICATE REQUEST CSR 내용을인증기관에게메일로송부하거나인증서신청화면에붙여넣으신후인증서신청을진행하시면됩니다. 인증기관의발급절차에따라서인증서가발급됩니다. (2) 인증서설치방법 1 메일로받은인증서를복사하여파일로저장합니다.( 예 : Cert.pem) BEGIN CERTIFICATE MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0Z TEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNA QkBFgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV 1LQGfcSh8nehEOIxGwmCPlrhTP87PaA0XvGpvRQUjCGStrlQsd8lcYVVkOaytNUCAwE AAaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9 BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== END CERTIFICATE 2 Apache 서버의적절한위치에저장합니다.
3 ssl.conf 수정 (virtual host 설정 ) ssl.conf 의 https(ssl) 을사용하기위해구성된 virtual host 부분을 http 설정부분과동일하게수정합니다. <VirtualHost (domain):443> # General setup for the virtual host DocumentRoot "/usr/local/apache/htdocs" ServerName (domain):443 ServerAdmin root@(domain) ErrorLog /usr/local/apache/logs/ssl_error_log TransferLog /usr/local/apache/logs/ssl_access_log
4 1 ssl.conf 수정 ( 키파일과인증서설정 ) ssl.conf 파일에서인증서파일과개인키파일의위치와이름을알맞게수정합니다. 인증서설정 : SSLCertificateFile /usr/local/apache/cert/(domain name)_cert.pem 개인키설정 : SSLCertificateKeyFile /usr/local/apache/certificate/(domain name)_key.pem
4 2 ssl.conf 수정 ( 키파일과인증서설정 ) SG, COMODO # Server Certificate Chain: # Point SSLCertificateChainFile at a file containing the # concatenation of PEM encoded CA certificates which form the # certificate chain for the server certificate. Alternatively # the referenced file can be the same as SSLCertificateFile # when the CA certificates are directly appended to the server # certificate for convinience. SSLCertificateChainFile /usr/local/apache/conf/certficate/chain.pem #SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/ca.crt # Certificate Authority (CA): # Set the CA certificate verification path where to find CA # certificates for client authentication or alternatively one # huge file containing all of them (file must be PEM encoded) # Note: Inside SSLCACertificatePath you need hash symlinks # to point to the certificate files. Use the provided # Makefile to update the hash symlinks after changes. SSLCACertificateFile /usr/local/apache/conf/certficate/root.pem
#SSLCACertificateFile /usr/local/apache/conf/ssl.crt/ca-bundle.crt 5 웹서버재구동 httpd.conf 파일에오류가없는지확인 /usr/local/apache/bin/apachectl t Syntax OK 라고나오면오류가없습니다. 기존아파치서비스중단 /usr/local/apache/bin/apachectl stop http, https 웹서버를구동 /usr/local/apache/bin/apachectl start 실행후인증서개인키패스워드입력하면 http(80), 과 https(443) 두서비스가실행
6 이제 SSL 인증서의설치가완료되었습니다. Ⅵ 장으로이동하셔서실제웹페이지를어떻게수정해야하는지알아보겠습니다. 2.3 Web2B 서버에서보안서버구축하기 가. 개인키생성및 CSR 생성방법