본문 바로가기
Develop/Network

[nginx] nginx ssl 적용 방법 기록

by 3-stack 2021. 10. 9.

https://cheapsslsecurity.com/blog/install-ssl-certificate-nginx-http-server/

centos8 에서 nginx@1.20.1 를 사용했다.

 

인증서를 발급받은 업체로부터 인증서키와
아파치용, 엔진엑스용으로 인증서를 받았다.

아파치 용도는 서버인증서, 체인인증서, 루트인증서 가 나눠져 있으며

엔진엑스 용도는 세 인증서 합쳐져 있다.

 

- 인증서 파일을 열어보면...

아래와 같이 CERTIFICATE가 하나이거나 두개 이상 들어있는 것을 확인할 수 있다.

-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----

 

받은 그대로 엔진엑스 인증서를 설정했지만 적용 되지 않았다.

인증서를 합칠 때 순서가 서버->체인>루트 순서로 되야 하는데
순서가 맞지 않아 문제였다.

직접 3개의 인증서를 합쳐주고 설정하면 잘 적용된다.

인증서들의 확장자는 중요하지 않다. pem, crt 등등... 업체에서 주기 나름..

 

 

Nginx 용도의 인증서 만드는 방법

- 인증서 합체

cat server.pem chain.pem root.pem > bundle.pem

 

- 합체 확인

합체를 하고 합체된 파일을 열어보면 아래와 같이 END 와 BEGIN 이 같은 라인에 있을 경우

-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----

라인을 나눠줘야 한다.

-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----

 

- nginx 설정 파일

server {
  listen 443 ssl;
  
  # 인증서가 지원하는 도메인
  server_name one.superpower.com; 
  
  # 개인키 파일 지정
  ssl_certificate_key /파일경로/cra.key; 

  # 서버인증서+체인+루트 통합 unified 파일 지정)
  ssl_certificate /파일경로/bundle.pem;

  # 서버 환경에 따라 선택 적용
  ssl_protocols TLSv1.2; 

  location / {
  }

  ...
}

 

- 설정 적용

systemctl reload nginx # 또는 systemctl restart nginx
systemctl status nginx

댓글