키생성및 CSR 생성 키생성을위해 OpenSSL 설치디렉토리에서아래명령대로생성 1. 랜덤넘버생성 $ openssl md5 * > rand.dat 2. 키쌍생성 openssl genrsa -rand rand.cat -des3 1024 > key.pem 3. 생성된키쌍을이용하여 CSR 생성 openssl req -new -key key.pem > csr.pem (Enter PEM pass phrase : key 비밀번호설정 ) Country( 국가코드 ) : State/province ( 시 / 도의전체이름 ) : Locality( 시, 구, 군등의이름 ) : Organization( 회사이름 ) : Organization Unit( 부서명 - 예를들면전산팀, 마케팅팀, 운영팀등 ) : Common Name(host name+domain name 서비스할전체 URL) : " 추가속성 " 을입력하라는메시지가나타나면그냥무시하십시오. ( 아래실행화면.) CSR 확인
4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY 생성시. - 해당디지털 ID 승인후 E-mail 로기술담당자에게송신됩니다. 서버 ID 는다음과같이나타납니다.
인증서복사 -----BEGIN CERTIFICATE 및 END CERTIFICATE----- 행을포함하여모든문자를메모장 (Word 나기타워드프로세서프로그램은사용하지마십시오 ) 과같은텍스트편집기에복사하십시오. 인증서가위의형식대로나타나는지확인하십시오. 인증서저장 - 인증서를 cert.pem 으로저장합니다. Conf 파일수정 인증서 (cert.pem) 파일또는키 (key.pem) 파일을특정디렉토리에두십시오. ( Ex. /usr/local/apache/conf/ssl ) 3.ssl.conf 파일에서설정및수정. ssl.conf 파일을열어서다음과같이 VirtualHost 의내용을수정하십시오. <ifdefine SSL> Listen 443 </ifdefine> -------------------------------------------- <VirtualHost _default_:443> DocumentRoot "/xxx/html" ( 홈디렉토리 ) ServerName www.xxx.co.kr ( 인증서 URL) ServerAdmin admin@xxx.co.kr SSLEngine on
SSLCipherSuite ALL:!ADH:!EXP56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL VirtualHost 설정부분에아래처럼 SSL 관련경로를설정해주시면됩니다. SSLCertificateFile /usr/local/apache/conf/ssl/cert.pem ( 인증서파일설정 ) SSLCertificateKeyFile /usr/local/apache/conf/ssl/key.pem ( 키파일설정 ) * 시큐어서버인증서의경우다음의설정을추가하셔야합니다. SSLCACertificateFile /usr/local/apache/conf/ssl/secureca.pem ( 시큐어체인인증서파일 ) * 글로벌서버인증서 (128bit SSL) 의경우엔다음의설정을추가하셔야합니다. SSLCACertificateFile /usr/local/apache/conf/ssl/intermediate.pem ( 글로벌체인인증서파일 ) 인증서확인 5. 아파치재구동 $ apachectl stop $ apachectl startssl ( 키비밀번호입력 ) 6. 웹페이지에서확인 ( 해당 https://url 으로확인 ) Conf 파일확인 1. Conf 파일에서기존인증서의설치경로와파일명확인하기. - 확인해야할 Conf 파일 Apache 1.x 일경우 : httpd.conf
Apache 2.x 일경우 : ssl.conf Apache 2.2.x 일경우 : httpd-ssl.conf Conf 파일안에아래의내용을확인. 예 ) SSLCertificateFile /usr/local/apache/conf/cert.pem ( 인증서파일경로설정 ) 2. 메일로받은인증서 ( 또는첨부된인증서 ) 를복사하여같은인증서파일명으로저장. 메일로받은인증서 (-----BEGIN CERTIFICATE----- 에서 -----END CERTIFICATE-----) 를복사하여파일로저장하십시오. (Vi 나 Notepad 이용 ) 인증서설치 3. 기존인증서교체우선기존의인증서를다른이름으로바꾸고, 새인증서를구인증서와같은디렉토리에예전의인증서와같은이름으로복사해주십시오. 예 ) /usr/local/apache/conf/cert.pem 2007 년 4 월이후에적용된시큐어인증서는첨부된체인인증서를함께설치합니다. 예 ) SSLCACertificateFile /usr/local/apache/conf/secureca.pem( 체인인증서 ) 4. 저장후, Apache 를재구동하십시오.
$ apachectl stop $ apachectl startssl ( 키비밀번호입력 ) - Apache 2.2.x 는 $ apachectl start 5. 웹페이지에서확인 ( 해당 https://url 으로확인 ) - 인증서정보에서갱신날짜확인. 개인키패스워드변경, 삭제및복구방법 (openssl) openssl 을이용하여개인키의비밀번호를변경할수있습니다. 1. 키파일패스워드변경하기 (openssl 이설치되어있는디렉토리에서설정 ) $ openssl rsa -des3 -in key.pem -out newkey.pem Pass-Phrase 를물어보면 처음에는기존패스워드입력, 두번째는새로운패스워드입력. 2. 키파일패스워드삭제하기 (openssl 이설치되어있는디렉토리에서설정 ) $ openssl rsa -in key.pem -out newkey.pem 3. 키파일삭제한패스워드복구하기 (openssl 이설치되어있는디렉토리에서설정 ) $ openssl rsa -in key.pem des3 -out newkey.pem Conf 파일수정 설치환경 Apache 1.x, 2.x, 2.2.x 에서설정 www.test.com, www.test2.com 두개의인증서설치하기 Httpd.conf 환경설정 (2.x 에선 ssl.conf 2.2.x 에선 httpd-ssl.conf)
- Virtualhost 로하나의 ip 에두개의인증서설정 ( 두개의포트필요 ) /usr/local/apache/conf/httpd.conf 에서설정 (2.x 에선 ssl.conf, 2.2.x 에선 httpd-ssl.conf) 1. 두개의 Key 값과 Cert 인증서저장 ( 다른폴더에저장 ) /usr/local/apache/conf/ssl/test /usr/local/apache/conf/ssl/test2 에저장. httpd.conf 파일에서관련부분수정 (2.x 에선 ssl.conf, 2.2.x 에선 httpdssl.conf) - key.pem 파일과 cert.pem 파일설정후체인인증서추가 시큐어인증서의경우 SSLCACertificateFile/usr/local/apache/conf/ssl/secureCA.pem 글로벌인증서의경우 SSLCACertificateFile/usr/local/apache/conf/ssl/intermediate.pem Ex.) www.test.com, www.test2.com Ip : 192.168.0.2 3. conf 파일수정.( 아래화면 ) Conf 파일수정 <ifdefine SSL> Listen 443 Listen 444-443 과 444 두개의포트 Listen </ifdefine> NameVirtualHost 192.168.10.12:443 NameVirtualHost 192.168.10.12:444 - NameVirtualHost 로포트를잡아준다. -------------------------------------------- <VirtualHost _default_:443> DocumentRoot "/xxx/html" ( 홈디렉토리 ) ServerName www.test.com:443 ( 인증서 URL) ServerAdmin admin@xxx.co.kr SSLCertificateFile /usr/local/apache/conf/ssl/test/cert.pem ( 인증서파일설정 ) SSLCertificateKeyFile /usr/local/apache/conf/ssl/test/key.pem ( 키파일설정 ) SSLCACertificateFile /usr/local/apache/conf/ssl/intermediate.pem ( 글로벌인증서의경우 ) SSLCACertificateFile /usr/local/apache/conf/ssl/secureca.pem ( 시큐어인증서의경우 ) </VirtualHost> <VirtualHost _default_:444> DocumentRoot "/xxx2/html" ( 홈디렉토리 )
ServerName www.test2.com:444( 인증서 URL) ServerAdmin admin@xxx.co.kr SSLCertificateFile /usr/local/apache/conf/ssl/test2/cert.pem ( 인증서파일설정 ) SSLCertificateKeyFile /usr/local/apache/conf/ssl/test2/key.pem ( 키파일설정 ) SSLCACertificateFile /usr/local/apache/conf/ssl/intermediate.pem ( 글로벌인증서의경우 ) SSLCACertificateFile /usr/local/apache/conf/ssl/secureca.pem ( 시큐어인증서의경우 ) </VirtualHost> Conf 수정화면
가상호스트두개의포트별인증서설정완료. 4. 아파치재구동 $ apachectl stop $ apachectl startssl (2.2.x 에선 apachectl start) 5. 웹페이지에서확인 ( 해당 https://url 과 https://url:444 확인 )
Openssl 설치 아파치서버에서 SSL 통신을가능하게하기위해서는 OpenSSL 과 mod_ssl 이필요합니다. 참고사이트 www.openssl.org www.apache.org
www.modssl.org Apache version 2.x 에서는 version 1.x 에서와같이 open-ssl 과 modssl 을연동할필요가없습니다. 1. Open-ssl(0.9.7 버젼권장 ) 은설치후기존버전에서와마찬가지로키생성하시면됩니다. Open-ssl 설치 $ gzip -cd openssl-0.9.7.tar.gz tar xvf - $./config $ make $ make install config 에서 prefix 를주지않았을때에는 /usr/local/ssl 디렉토리에설치가됩니다. 다른디렉토리에설치를하고자한다면다음과같이한다. $./config --prefix=/usr/local --openssldir=/usr/local/openssl OpenSSL 의실행화일은 /usr/local/ssl/bin 에설치되고인증서비스를위한화일들은 /usr/local/openssl 아래의디렉토리에생성됩니다. Apache 설치 2. mod-ssl 은 Apache version 2.x 에포함되어있습니다. < 단, 처음 Apache 설치 (compile) 할때 mod-ssl 의활성화를위해서옵션명령어 (--enable-ssl ) 를추가시켜줘야합니다. > 설치시 configure 옵션은아래와같이해주세요. $ SSL_BASE=../openssl-0.9.7 \./configure \ --prefix=/usr/local/apache2 \ --enable-so \ --enable-shared=max \ --enable-ssl $ make
$ make install