Nginx 에 코모도 Positive SSL 적용기
한비로 HanbiroSSL 에서 코모도 포지티브를 신청, 가장 저렴한 편이다.
결제하고 메일을 한 번 받아서 인증하고 하루 이틀 지나면
최종 인증 파일이 담긴 메일을 받는다.
순서는 다음과 같다.
홈페이지 내용은 좀 복잡해 보인다…
압축 파일을 풀어서 또는 그대로 업로드, 서버에서 풀던 아무튼 풀어 다음과 같은 파일들을 확인한다.
설명서에는 아래와 같은 내용이 포함된다.
파일 종류 설명
.crt - 서버응답인증서 (CA에서 발급된 인증서 PEM 텍스트)
.key - CSR 자동생성 신청시, 같이 자동 생성된 개인키 (SHA1 알고리즘, PEM 텍스트, 패스워드 없음)
.pfx - 개인키+서버응답인증서 패키징된 인증서 (설치시 암호 필요)
.pfx.txt - pfx 를 이용해서 인증서 설치시 필요한 해제 암호
.Chain.zip - 설치가 필수인 체인 인증서 모음 압축 파일
주요 상품별 체인 인증서
[Positive 계열 상품]
루트 인증서 : AddTrustExternalCARoot.crt
체인 인증서 : PositiveSSLCA2.crt
[Comodo 계열 상품]
루트 인증서 : AddTrustExternalCARoot.crt
체인 인증서 : COMODOSSLCA.crt
[Free 30 Days 상품]
루트 인증서 : AddTrustExternalCARoot.crt
체인 인증서 : UTNAddTrustSGCCA.crt
체인 인증서 : ComodoUTNSGCCA.crt
체인 인증서 : EssentialSSLCA_2.crt
[EV 상품]
루트 인증서 : AddTrustExternalCARoot.crt
체인 인증서 : COMODOAddTrustServerCA.crt
체인 인증서 : COMODOExtendedValidationSecureServerCA.crt
포지티브 용은 아래와 같은 파일들이 포함되어 있다.
기본적으로 아래와 같이 세팅하면 된다.
server {
server_name domain;
listen 443;
ssl on;
ssl_certificate domain.crt;
ssl_certificate_key domain.SHA1.key;
ssl_session_timeout 5m;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3100;
proxy_redirect off;
}
}
리스타트 하면
사파리와 크롬에서는 정상적인 인증서 세팅이 가능하다.
하지만 파이어폭스에서는 루트인증서를 확인할 수 없다는 경고가 나타난다.
다시 살펴보자.
pfx.txt
domain.crt
domain.pfx
domain.SHA1.key
PositiveSSL.Chain.zip
루트 인증을 위해 PositiveSSL.Chain.zip 도 푼다.
addTrustExternalCARoot.crt
PositiveSSLCA2.crt
첫번째 것은 루트 인증서
두번째 것은 체인 인증서
인증서를 합치자.
콘솔에서 파이프를 사용해 인증서(그냥 텍스트 파일이다)를 붙이자.
$ cp domain.crt chainedSSL.crt
$ cat addTrustExternalCARoot.crt >> chainedSSL.crt
$ cat PositiveSSLCA2.crt >> chainedSSL.crt
순서는 루트 인증서를 먼저 붙이고 그 다음 체인 인증서를 붙인다. 순서가 변경되면 제대로 동작하지 않는다.
server {
server_name domain;
listen 443;
ssl on;
ssl_certificate chainedSSL.crt;
ssl_certificate_key domain.SHA1.key;
ssl_session_timeout 5m;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3100;
proxy_redirect off;
}
}
server {
server_name domain;
listen 80;
rewrite ^ https://domain$request_uri? permanent;
}
일반 포트로 접속하는 http 에도 요청을 받아들이기 위해 rewrite 도 사용해준다.
리스타트 한다. 파이어폭스에서도 이상없이 서비스 된다.
'Development > Servers' 카테고리의 다른 글
최신 Mysql 캐릭터 셋과 컬레이션 (0) | 2016.11.11 |
---|---|
클라이언트 에디터에서 서버 파일 편집하기 (0) | 2015.04.17 |
Find, Grep 명령 예제 (0) | 2014.03.19 |
프로세스 관리 (0) | 2013.08.04 |
Nginx 프록시 모드 세팅 점검 (0) | 2013.05.15 |