태섭씨 블로그
Wildcard SSL 인증서 설치 작업 기록 본문
서버에 SSL 인증서 설치 작업 내용 간략히 기록.
1. 도메인 결정 및 DNS 신청
- Wildcard 도메인 인증서 (*.domain.com) 가 있기 때문에 별 생각없이 aaa.domain.com (2차 sub-domain) aaa.bbb.domain.com (3차 sub-domain) 사용하기로 협의
- 사내 시스템으로 DNS 신청, 며칠 후 등록 완료되었다는 연락이 오고 nslookup 명령어로 확인 완료.
2. 아파치에 인증서 설치 및 vhosts 설정
- 아파치에 SSL 인증서 설치 :
SSLCertificateFile /usr/local/apache2/conf/star.domain.com.crt 설명 : 발급 받은 파일 중 "인증서 파일"을 지정 SSLCertificateKeyFile /usr/local/apache2/star.domain.com.key 설명 : 발급 받은 파일 중 "개인키 파일"을 지정 SSLCertificateChainFile /usr/local/apache2/conf/star.domain.com.ca-bundle 설명 : 발급 받은 파일 중 "Chain CA인증서 파일"을 지정 설명 : 발신된 메일 내용 중 "CA-1 정보"에 지칭된 이름 작성 설명 : SSLCertificateChainFile 에 주석(#)이 있을 경우 주석 해제 SSLCACertificateFile /usr/local/apache2/conf/star.domain.com.root-bundle 설명 : 발급 받은 파일 중 "ROOT CA인증서 파일"을 지정 설명 : 발신된 메일 내용 중 "CA-2 정보"에 지칭된 이름 작성 설명 : SSLCACertificateFile 에 주석(#)이 있을 경우 주석 해제 |
- 문제 발생 :
- 분명히 설치를 잘 했는데, 3차 sub-domain 에서 인증서 오류가 발생함
- 확인해보니 해당 인증서는 2차 sub-domain 까지만 지원함 ㅠㅠ ( https://www.comodossl.co.kr/support/faq/view.aspx?category=SSL&Seq=1076 )
- 그래서 일단 3차 sub-domain 은 DNS 신청부터 다시...
- vhosts 설정 :
- DocumentRoot, ServerName 등 설정 (상세한 것은 http://httpd.apache.org/docs/2.4/en/vhosts/ 참고)
3. 개인키 비밀번호 제거
- 개인키 비밀번호가 걸려있는 경우, 아파치 리스타트시마다 비밀번호 입력이 필요하다.
- 비밀번호 제거 : 여기도 http://dev.meye.net/196 참고해보자.
[root@localhost ssl]# openssl rsa -in [키 파일] -out [새로운 키 파일명] [패스워드 입력] |
3-2) (실제 적용한 건 아니지만) 패스워드 자동입력
- 아래와 같이 적용하면 아파치 기동시 자동입력이 된다고 한다 (해보지는 않아서...)
[root@localhost conf]# vi /usr/local/apache2/conf/ssl/pass.sh # 아래 두 줄을 pass.sh 에 저장하고 종료 #!/bin/sh echo 패스워드 [root@localhost conf]# chmod 700 /usr/local/apache2/conf/ucert/pass.sh # 권한 설정 (root 만 접근 가능) [root@localhost conf]# vi extra/httpd-ssl.conf #SSLPassPhraseDialog builtin # 설명 : 개인키 패스워드 수동 입력 설정을 주석처리 SSLPassPhraseDialog exec:/usr/local/apache2/conf/ucert/pass.sh # 설명 : 개인키 패스워드 자동 입력 스크립트 실행경로 명시 |
4. 기타 유용한? 커맨드
- config 가 정상적으로 설정되어 있는지 확인
/usr/local/apache2/bin/apachectl configtest Syntax OK # 설명 : "Syntax OK" 정상 적으로 설정 되었을 경우 나오는 메시지 |
- 로컬에서 인증서 확인, 인증서 시작/만료일 확인
[root@localhost ~]# netstat -nap | grep httpd tcp 0 0 :::80 :::* LISTEN 19301/httpd tcp 0 0 :::443 :::* LISTEN 19301/httpd [root@localhost ~]# openssl s_client -connect 127.0.0.1:443 | openssl x509 # 443포트 Listen 된 상태에서 명령어를 사용하여 로컬에서 인증서를 확인. 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----- // 생략 -----END CERTIFICATE----- [root@mail ~]# echo "" | openssl s_client -connect localhost:443 | openssl x509 -noout -dates # 인증서 시작과 만료일 확인 notBefore=May 2 00:24:14 2011 GMT notAfter=Feb 15 21:38:20 2012 GMT [root@mail ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 | openssl x509 -noout -enddate # 만료일만 확인 notAfter=May 3 08:06:38 2012 GMT |
'IT' 카테고리의 다른 글
HTTP Keep-Alive (0) | 2015.03.06 |
---|---|
URL 에서의 #! (hash-bang) (0) | 2015.02.11 |
Dictionary Map 차이점 (자료구조) (0) | 2015.02.02 |