인증서가 발급되면 담당자의 이메일을 통해 두개의 인증서가 전달된다. 하나는 웹서버인증서(servercert.crt) 이고, 다른 하나는 체인인증서(chaincert.crt) 이다. 파일을 메모장(Notepad)으로 열어보면 모두 다음과 같은 형식으로 되어 있다.
-----BEGIN CERTIFICATE----- MIICwTCCAioCAQEwDQYJKoZIhvcNAQEEBQAwgakxCzAJBgNVBAYTAlhZMRUwEwYD VQQIEwxTbmFrZSBEZXNlcnQxEzARBgNVBAcTClNuYWtlIFRvd24xFzAVBgNVBAoT DlNuYWtlIE9pbCwgTHRkMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkx FTATBgNVBAMTDFNuYWtlIE9pbCBDQTEeMBwGCSqGSIb3DQEJARYPY2FAc25ha2Vv aWwuZG9tMB4XDTAyMDEwODA0NDY1MFoXDTAzMDEwODA0NDY1MFowgacxCzAJBgNV BAYTAktSMRQwEgYDVQQIEwtLWVVORyBLSS1ETzEOMAwGA1UEBxMFU2VvdWwxFjAU BgNVBAoTDVdlYnRpemVuIEluYy4xFDASBgNVBAsTC0RldmVsb3BtZW50MSAwHgYD -----END CERTIFICATE----- | |
- 아파치 서버에 루트(root) 계정으로 접속한다.
- 인증서 복사
수취한 인증서 파일을 메모장(Notepad)으로 열어서 내용을 복사한다. 복사할 때에는 첫 줄부터 끝 줄까지 모두 복사하여 아래의 항목이 포함되어야 한다. -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
- 인증서 저장
서버에서 적당한 이름으로 텍스트파일 하나를 만들어 붙여넣기 한 후에 저장한다. 여기서는 두 개의 파일을servercert.crt 와 chaincert.crt 라는 이름으로 저장하였다.
<인증서 설치를 위해 필요한 파일은 다음 두 개이다.> server.key (개인키) servercert.crt (인증서) chaincert.crt (체인인증서)
-
server.key 는 담당자에게 발송했던 key파일의 내용으로 대처한다.
- httpd.conf 파일을 열어 아래 설명대로(빨간글씨) 바꾸어준다.
먼저 httpd.conf 파일을 httpd.conf.back 등으로 이름을 지어 백업파일을 하나 만들어둔다. (만일의 경우를 대비 ^^)
1) httpd.conf 파일을 열어 SSL Virtual Host Context 부분을 찾는다.
## ## SSL Virtual Host Context ##
<VirtualHost 211.189.0.254:443> // 2)default부분을 해당 IP로 바꾸어준다
# General setup for the virtual host DocumentRoot "/var/www/html" ServerName intranet.webtizen.co.kr ServerAdmin webtizen@pink ErrorLog /usr/local/apache-ssl/logs/error_log TransferLog /usr/local/apache-ssl/logs/access_log
# SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on // 3)off를 on으로 바꾸어 SSL엔진을 작동시킨다 . . . SSLCertificateFile /usr/local/apache-ssl/conf/ssl.crt/servercert.crt // 4)인증서(crt파일)를 설치하는 부분. 인증서의 파일 경로를 적어준다 SSLCertificateKeyFile /usr/local/apache-ssl/conf/ssl.key/server.key // 5)개인키(key파일)을 설치하는 부분. 마찬가지로 개인키의 파일 경로를 적어준다. SSLCACertificateFile /usr/local/apache-ssl/conf/ssl.crt/chaincert.crt // 6)체인인증서(crt파일)를 설치하는 부분. 역시 체인인증서의 파일 경로를 적어준다. . . . <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files>
<Directory "/usr/local/apache-ssl/cgi-bin"> SSLOptions +StdEnvVars </Directory>
# SSL Protocol Adjustments: SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
# Per-Server Logging: CustomLog /usr/local/apache-ssl/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost> |
- 수정을 마쳤으면 저장한 후 아파치를 재구동시킨다.
apachectl stop apachectl startssl
(아파치에서의 SSL 구동 이미지)
위에서 패스워드를 입력하라는 메시지가 나오는데 여기에는 처음에 개인키를 생성할 때 입력했던 패스워드를 입력하면 된다.
Server intranet.webtizen.co.kr:443 (RSA) Enter pass phrase: // 이 부분에 패스워드를 입력
- https://로 해당 사이트에 접속하여 SSL이 잘 구동 되고 있는지를 확인한다.
|
===========================
key 파일이 처음 인증기관에 발송했던 파일과 틀리면 다음과 같은 error발생
[root@test conf]# ../bin/apachectl startssl
Apache:mod_ssl:Error: Private key not found.
**Stopped
../bin/apachectl startssl: httpd could not be started
[root@test conf]# tail -n /usr/local/apache/logs/error_log
[Tue Jul 12 15:01:42 2005] [notice] caught SIGTERM, shutting down
[Tue Jul 12 15:03:34 2005] [error] mod_ssl: Init: (cert.test.com:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Tue Jul 12 15:03:34 2005] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[Tue Jul 12 15:05:17 2005] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue Jul 12 15:05:17 2005] [error] mod_ssl: Init: (cert.test.com:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Tue Jul 12 15:05:17 2005] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[Tue Jul 12 15:07:31 2005] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue Jul 12 15:07:31 2005] [error] mod_ssl: Init: (cert.test.com:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Tue Jul 12 15:07:31 2005] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[Tue Jul 12 15:10:22 2005] [error] mod_ssl: Init: Private key not found (OpenSSL library error follows)
[Tue Jul 12 15:10:22 2005] [error] OpenSSL: error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Tue Jul 12 15:10:22 2005] [error] OpenSSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Jul 12 15:10:22 2005] [error] OpenSSL: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Tue Jul 12 15:10:22 2005] [error] OpenSSL: error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib