Nginx에 startssl.com 인증서 설정 방법
startssl.com 에서 인증서를 받는 방법은 인터넷상에 꽤 많이 나와 있기 때문에 생략합니다.
startssl.com 에서 인증서를 생성한 후에 그대로 nginx에 적용하면 에러가 발생합니다.
따라서 약간의 과정을 거쳐야 하는데
우선 startssl.com 에서 ssl.key 와 ssl.crt 파일을 받았다고 가정하겠습니다. (파일명은 맘대로 설정하시면 됩니다)
참고로 제 환경은CentOS, Nginx, MariaDB 입니다.
1. 만약에 /etc/nginx/conf 디렉토리가 없으면 하나 생성합니다.
2. startssl.com 에서 받은 ssl.key 파일을 가지고 아래와 같이 설정해줍니다.
openssl rsa -in ssl.key -out /etc/nginx/conf/ssl.key
chmod 600 /etc/nginx/conf/ssl.key
3. Root CA와 Class 1 Intermediate Server CA certificates를 받습니다.
wget http://www.startssl.com/certs/ca.pem
wget http://www.startssl.com/certs/sub.class1.server.ca.pem
4. 이제 다운로드 받은 파일과 ssl.crt 파일을 합쳐서 새로운 파일을 생성합니다.
cat ssl.crt sub.class1.server.ca.pem ca.pem > /etc/nginx/conf/ssl-unified.crt
이제 필요한 파일 생성이 끝났습니다.
최종적으로 /etc/nginx/conf/에는 ssl.key와 ssl-unified.crt 파일이 있게 됩니다.
이제 /etc/nginx/nginx.conf 파일을 열어서 새로운 key 와 인증서 파일을 사용할 수 있도록 설정을 합니다.
server {
listen 443;
server_name ur.domain.name;
ssl on;
ssl_certificate /etc/nginx/conf/ssl-unified.crt;
ssl_certificate_key /etc/nginx/conf/ssl.key;
location / {
root /var/www/html;
}
}
이제 nginx 를 다시 시작하고 ssl 이 제대로 동작하는지 확인하시면 됩니다.
혹시나 재시작 과정에서 end of line 어쩌고 하는 에러가 발생하면 위에서 만든 ssl-unified.crt 파일을 열어서
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
위와같이 된 곳이 있으면
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE------
이렇게 변경해주고 저장후에 다시 nginx 를 시작하면 됩니다.