hahahia

Nginx기반 SSL 보안인증서 설치 방법(AlphaSSL) 본문

Linux

Nginx기반 SSL 보안인증서 설치 방법(AlphaSSL)

hahahia 2015. 5. 7. 10:34

오랜만에 포스팅이네요...-_-

앞으로는 글 열심히 써야겠습니다 ㅠㅠ

최근에 Nginx에 보안인증서를 달아야 하는 일이 있었는데 한참을 고생했네요...

이 글을 통해서 저와 같은 멘붕을 겪는 분들이 없길 바래요


1. CSR(Certificate Signing Request) 생성

CSR 이란 SSL을 사용하기 위해서 SSL을 제공하는 회사에게 SSL을 사용하고 싶다고 신청하는 일종의 신청서라고 생각하시면 될 것 같습니다. 신청서니까 여러가지 입력 양식이 있겠죠??

우선 openssl이 설치되어 있어야 합니다.

openssl 설치 명령어
sudo apt-get install libssl-dev openssl

openssl을 설치했다면 다음 명령어로 CSR 파일을 만들어봅시다.
참고로 저는 /etc/nginx/ssl 디렉토리에서 작업했습니다

root@www:/etc/nginx/ssl# openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr

위와 같이 명령어를 입력하면 

CSR 파일 생성을 위한 여러가지 입력 폼이 뜨게 됩니다.

Country Name ( 국가코드) [] : KR
State or Province Name ( 지역 ) [] : Seoul
Locality Name ( 시/군/구 ) [] : Seocho
Organization Name ( 회사명 ) [] : 회사명 Inc
Organizational Unit Name ( 부서명 ) [] : Develop Team
Common Name ( 서비스도메인명 ) [] : www.domain.com
Email Address [] : 현재 도메인 소유자의 이메일 주소


입력 양식은 위 양식을 참고해서 입력해주시면 될 것 같습니다. 입력을 다 하면 myserver.key 파일과 server.csr 파일이 생성이 됩니다. cat 명령어로 csr 파일을 보면

형태로 저장이 되있는 것을 확인 할 수 있습니다. 

2. 만들어진 CSR을 업체에 요청하여 SSL 인증서 받아오기

위의 텍스트를 직접 AlphaSSL 공식 사이트(https://www.alphassl.com/)나 SSL 신청 대행업체(가비아 등)에 요청을 합니다. 저는 가비아를 이용해서 대행신청을 했구요. 

신청을 완료하면 신청자 메일로 AlphaSSL 인증서 발급 알림 메일이 날라옵니다.

3. PEM 파일 만들기

메일로 받은 인증서 말고 2개의 파일을 더 추가해야 합니다.

1. 먼저 https://www.alphassl.com/support/roots/root.txt 를 들어가서 root ca의 텍스트 값을 저장합니다.

2. https://www.alphassl.com/support/install-root-certificate.html 를 들어가서 AlphaSSL Intermediate CA의 텍스트 값을 저장해야합니다. 여러가지 종류가 나오는데 거기에서 구매한 SSL에 맞춰서 복사를 하시면 됩니다. 저는 일반 상품을 구매하였기 때문에 아래에 있는 Intermediate CA를 저장했습니다.

그리고 pem 파일을 생성해야 합니다. pem 파일은

-----BEGIN CERTIFICATE-----

메일을 통해 받은 인증서 텍스트 값

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

ROOT CA 텍스트 값

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

Intermediate CA 텍스트 값

-----END CERTIFICATE-----

과 같은 방식으로 만들어 주시면 됩니다(순서 꼭 지켜야 합니다! 하나라도 빠지면 안됩니다)

실질적으로 필요한 파일은 초기에 CSR을 만들면서 같이 생성된 key 파일과 방금 설명한 pem 파일입니다. 저는 이 파일을 myDomain.pem로 저장하였습니다.

그리고 SSL을 설정할 사이트의 conf 파일에

server {

  listen 443;

  ssl on; 

  ssl_certificate /etc/nginx/myDomain.pem; // pem 파일이 저장된 디렉토리 설정

  ssl_certificate_key /etc/ssl/private/myserver.key; // 키 파일이 저장된 디렉토리


  // 나머지 부분은 80번 포트 기본 설정 그대로  

}

이 부분을 추가하고 nginx를 restart 하시면 올바르게 적용이 되는 것을 확인하실 수 있습니다!

Comments