Global It Leader!!



 
 

리눅스 SSL설치 _ Apache_멀티인증서

페이지 정보

작성자 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 7,375회 작성일 11-07-13 13:20

본문

1. Apache 데몬(프로세스) 확인 방법

[root@localhost ~]# ps -ef | grep httpd
root 19403 1 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 19404 19403 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 19405 19403 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 19406 19403 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 19407 19403 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 19408 19403 0 05:01 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
root 19538 19479 0 05:56 pts/3 00:00:00 grep httpd

2. Apache 사용 포트 확인

[root@localhost ~]# netstat -nap | grep httpd
tcp 0 0 :::80 :::* LISTEN 19403/httpd

3. Apache&SSL 환경 설정

1) "vi" 명령어를 사용하여 Apache의 환경파일(httpd.conf)을 열기

 [root@localhost ~]# cd /usr/local/apache2/conf/
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
[root@localhost conf]# vi httpd.conf

2) Apache 설정 내용 확인 

 Listen 80

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
/ssl
설명 : ssl (단어) 검색

3) "mod_ssl.so" 모듈이 존재하는지 확인

 LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so

설명 : "LoadModule ssl_module modules/mod_ssl.so"에 #(주석)이 있을 경우 주석 해제


 # Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf

# Various default settings
#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

설명 : "Include conf/extra/httpd-ssl.conf" 에 주석(#)이 있을 경우 주석 해제

#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_
ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
:wq!
설명 : 저장 후 종료

4) SSL 확경파일을 "vi" 명령어로 편집 합니다.

 [root@localhost conf]# vi ./extra/httpd-ssl.conf

Listen 443
Listen 444
Listen 446
설명 : SSL을 서비스 포트 설정

SSLPassPhraseDialog builtin
설명 : 개인키 패스워드 수동 입력 설정

<VirtualHost _default_:443>
설명 : 호스트 해더 지정 ( 기본 설정 : _default_ )

# General setup for the virtual host
DocumentRoot "/usr/local/apache2/htdocs"
설명 : SSL을 설정 할 도메인의 DocumentRoot와 동기화
ServerName www.ucert.co.kr:443
설명 : SSL을 설정 할 도메인의 Domain과 동기화
ServerAdmin ucert@ucert.co.kr
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/conf/ucert/www.ucert.co.kr.crt
설명 : 발급 받은 파일 중 "인증서 파일"을 지정
SSLCertificateKeyFile /usr/local/apache2/ucert/www.ucert.co.kr.key
설명 : 발급 받은 파일 중 "개인키 파일"을 지정
SSLCertificateChainFile /usr/local/apache2/conf/ucert/www.ucert.co.kr.ca-bundle
설명 : 발급 받은 파일 중 "CA 인증서 파일"을 지정
설명 : SSLCertificateChainFile 에 주석(#)이 있을 경우 주석 해제

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache2/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

* Port기반의 VirtualHost를 추가하여 위와 같이 SSL을 적용 할 도메인에 맞게 설정 합니다.
  (WildCard Domain 인증서 또는 Multi Domain 인증서는 중복 포트 사용이 가능 합니다.)


설명 : VirtualHost 설정
<VirtualHost *:443>
DocumentRoot "/home/ucert_support/"
ServerName support.ucert.co.kr:443
ServerAdmin ucert@ucert.co.kr
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

설명 : 인증서 설정
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/conf/ucert/start.ucert.co.kr.crt
SSLCertificateKeyFile /usr/local/apache2/ucert/start.ucert.co.kr.key
SSLCertificateChainFile /usr/local/apache2/conf/ucert/start.ucert.co.kr.ca-bundle

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache2/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

설명 : VirtualHost 설정
<VirtualHost *:443>
DocumentRoot "/home/ucert_test/"
ServerName test.ucert.co.kr:443
ServerAdmin ucert@ucert.co.kr
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

설명 : 인증서 설정
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/conf/ucert/start.ucert.co.kr.crt
SSLCertificateKeyFile /usr/local/apache2/ucert/start.ucert.co.kr.key
SSLCertificateChainFile /usr/local/apache2/conf/ucert/start.ucert.co.kr.ca-bundle

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache2/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

:wq!
설명 : 저장 후 종료

참고. 개인키 패스워드 자동 입력 설정

#SSLPassPhraseDialog builtin
설명 : 개인키 패스워드 수동 입력 설정
SSLPassPhraseDialog exec:/usr/local/apache2/conf/ucert/pass.sh
설명 : 개인키 패스워드 자동 입력 설정

[root@localhost conf]# vi /usr/local/apache2/conf/ucert/pass.sh
설명 : 패스워드 출력 스크립트 작성 아래 내용을 입력 합니다.
#!/bin/sh
echo 패스워드
설명 : "패스워드"는 발급 받은 패스워드.txt 파일에 저장 되어 있습니다.
:wq!
설명 : 저장 후 종료

4. Apache TEST&재시작

/usr/local/apache2/bin/apachectl configtest
Syntax OK
설명 : "Syntax OK" 정상 적으로 설정 되었을 경우 나오는 메시지

/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
설명 : 2.2.x 버전 ↑(이상)
/usr/local/apache2/bin/apachectl startssl
설명 : 2.0.x 버전 ↓(이하)


5. Apache 포트 및 만료일 확인

  [root@localhost ~]# netstat -nap | grep httpd
tcp 0 0 :::80 :::* LISTEN 19301/httpd
tcp 0 0 :::443 :::* LISTEN 19301/httpd

443포트 Listen 된 상태에서 아래의 명령어를 사용하여 로컬에서 인증서를 확인 합니다.
[root@localhost ~]# openssl s_client -connect 127.0.0.1:443 | openssl x509

depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
-----BEGIN CERTIFICATE-----
MIIE2jCCA8KgAwIBAgICD/cwDQYJKoZIhvcNAQEFBQAwPDELMAkGA1UEBhMCVVMx
FzAVBgNVBAoTDkdlb1RydXN0LCBJbmMuMRQwEgYDVQQDEwtSYXBpZFNTTCBDQTAe
Fw0xMDEyMTQxMDQ4NTlaFw0xMjAyMTUyMTM4MjBaMIHlMSkwJwYDVQQFEyBrdW9u
SXgyYmI0a0lxZGpvWWE1bklYQWRxNVl6dG9RUDELMAkGA1UEBhMCS1IxGDAWBgNV
BAoTD3d3dy51Y2VydC5jby5rcjETMBEGA1UECxMKR1Q1NDc2OTQxMDExMC8GA1UE
CxMoU2VlIHd3dy5yYXBpZHNzbC5jb20vcmVzb3VyY2VzL2NwcyAoYykxMDEvMC0G
A1UECxMmRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkIC0gUmFwaWRTU0woUikxGDAW
BgNVBAMTD3d3dy51Y2VydC5jby5rcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAMl6qA1dEc/FKw2qSjlh0iZDVGp+zqjBXW/iwkcnEZCzy/wxauh85OwM
G4TZ2FhJQabssuyVocWJGE/Fq3sO6U6lYZwycUKWN45sZTLGhdCbC0ZSb0OUq7tx
A8pDSqH/2/kG8a/Yfn8zGmXgsWi5swgfPKIa7dcmnmglA1x4YDquo0npWMizgt2z
mqQcuY5S/QKCDZo5Ee1BXaS4D7ZHiXzw5W9sDtsqo1nO37gLHTpNhIQrYnzN4ay7
l0FHLxiwEi2O/gndd4Z4/Rr0loFTdemStSPQlIRTag/+8/tMo+BoxHmPFTuWyNAb
MShN1eti+c0qWGsHigjvXMWtyg0NT4UCAwEAAaOCATowggE2MB8GA1UdIwQYMBaA
FGtpPWoYQkrdjwJlOf01JIZ4kRYwMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU
BggrBgEFBQcDAQYIKwYBBQUHAwIwJwYDVR0RBCAwHoIPd3d3LnVjZXJ0LmNvLmty
ggt1Y2VydC5jby5rcjBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vcmFwaWRzc2wt
Y3JsLmdlb3RydXN0LmNvbS9jcmxzL3JhcGlkc3NsLmNybDAdBgNVHQ4EFgQUkHru
EM3YsHLS8SjMWr7kBkyKu/YwDAYDVR0TAQH/BAIwADBJBggrBgEFBQcBAQQ9MDsw
OQYIKwYBBQUHMAKGLWh0dHA6Ly9yYXBpZHNzbC1haWEuZ2VvdHJ1c3QuY29tL3Jh
cGlkc3NsLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAcjR0KR5MnA8gJFhZ4GRHSfvD
N2WX88pZPtE0BlEOU18HLLg8xL5Bb8exvX5+sExHS9zasRHUIPAYpwALSf4/WP7M
96ZMAEAggR9Dt8pCyFO7QXgkB3QQ7EsEK+s01wSWxMN5/ZcSV7O0k/DF83DH118x
/DFVeGNJsbwC0BEzVe/HnmBo77dxCdG+M16R59s2BjEr9Lq9sNnnE3drqs51qrs+
T0CyUWSpZ9KhlwjcLCMKe/SY8WIXIYaAx+IqJ7XJQU+GV1AJP3zHldhngL7eMMFo
ROpAHbjfkI0XboRtTAVs0K46omCAA4JViVF1DDKaXPZ+swif4GlzY/ijwPLDkA==
-----END CERTIFICATE-----

인증서 만료일 확인 방법
[root@mail ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 | openssl x509 -noout -enddate
notAfter=Feb 15 21:38:20 2012 GMT

설명 : 로컬에서 인증서 출력이 정상적이고 외부에서 https://[도메인]으로 브라우저 접속 시 통신이 되지 않을 경우 내부 방화벽(예. iptables), 외부 방화벽 등에 SSL포트가 Allow (또는 웹방화벽에 인증서가 설치가) 되어있는지 확인 합니다.



댓글목록

등록된 댓글이 없습니다.

전체 167
게시물 검색
윈도우/리눅스 목록
번호 제목 글쓴이 조회 날짜
67 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7105 10-14
66 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8602 10-14
65 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6948 10-13
64 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6910 10-13
63 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6324 10-13
62 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8230 10-05
61 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7886 10-05
60 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6160 09-29
59 윈도우즈 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7279 09-20
58 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6962 09-07
57 윈도우즈 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7277 08-31
56 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8451 08-26
55 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6390 08-25
54 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7726 08-25
53 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7337 07-16
열람중 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7376 07-13
51 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 32031 07-12
50 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7596 06-28
49 윈도우즈 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7814 06-09
48 글꼴 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6603 05-23