NGINX SSL 인증서 등록

2024. 2. 8. 15:03·Linux
728x90

NGINX 기본 정보

  • NGINX 설치 경로: /appstore/webserver/nginx-woni
  • NGINX SSL Directory: /appstore/webserver/nginx-woni/ssl
  • NGINX 설정 파일: /appstore/webserver/nginx-woni/conf/site_aveliable/dev-wonipage.conf

NGINX 설정 방법

SSL 인증서는 NGINX, APACHE 발급 방식이 다르다.

Nginx는 SSLCACertificateFile이라는 지시자를 사용하지 않고,

Apache는 SSLCACertificateFile이라는 지시자를 사용한다. 

 

보통 업체를 통해 인증서를 발급받을 때 어떤 웹서버(Apache, Nginx)를 이용하는지 말하고 발급받으면 된다.

만약 Let's Encrypt 인증서로 발급 받을 예정이라면 하단 레퍼런스에 참고 문서를 넣어두었다.

그리고 NGINX에 대해서 모르는게 있다면 최대한 Doc을 활용하고 https://nginxstore.com/ 에 들어가 찾아보는것이 좋다.

 

NGINX 인증서는?

NGINX인증서는 발급 받을 경우 개인키, 서버 인증서, 체인인증서, 루트 인증서가 발급되는 경우가 있다.

만약 업체에서 따로 나눠 발급해준다면 이 내용은 넘어가도 좋다.

NGINX 인증서 합치기

서버 + 체인 + 루트 순서대로 합쳐주면 된다.

보통 아래와 같이 발급될 것이다.

SSL 인증서 발급된 파일

해당 파일이 있는 곳으로 이동한다.

서버인증서, 체인인증서, 루트인증서를 순으로 `ssl_exaple.cert` 로 합치는 명령어이다.

$ cat example.com_server.csr exaple.com_Chain.pem Chain_RootCA_Bundle.crt > ssl_example.crt

 

NGINX 합쳐진 인증서 확인

-----BEGIN CERTIFICATE-----
MIIDjjCdsafsdafsaCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
... 생략
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDjjCCAnagAwIBAgIQAzrx5123qㄹRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFA
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
... 생략
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIsafasfDjjCCsdfsaAnagAwIBAgIQAzrx5asdfcRqaC7KGSxHQn65TANBgkqhk
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
... 생략
-----END CERTIFICATE-----

NGINX 인증서 이동

인증서가 준비되면 합쳐진 파일 + Key File을 가지고 있으세여

/appstore/webserver/nginx-woni/ssl 경로로 이동시킨다.

 

NGINX SSL 적용 설정

$ /appstore/webserver/nginx-woni/conf/site_aveliable/dev-wonipage.conf
server {
    listen 8500 ssl;
    server_name dev.woni.com;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    # 인증서 경로 지정
    ssl_certificate /appstore/webserver/nginx_woni/conf/ssl/ssl_example.crt;
    ssl_certificate_key /appstore/webserver/nginx_woni/conf/ssl/example.com.key;

    server_tokens off;

    access_log /webstore/logs/nginx-woni/dev-woni/dev-woni_access.log main;
    error_log  /webstore/logs/nginx-woni/dev-woni/dev-woni_error.log debug;

    # 여기 이하 설정은 자신이 사용하는 용도에 따라 다르며 Node를 사용하고 있어 이처럼 설정한것이기 때문에 지워버리시면됩니다.
    location / {
        root /appstore/webserver/nginx_woni/dev-woni/build;
                index index.html, index,htm;
                try_files $uri /index.html;
    }

    location /service {
        allow all;
        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:18500;
        proxy_redirect off;
    }

 

이후 서비스를 재기동하면 정상적으로 인증이 되었을 것이다.

 

Reference

  • Let's Encrypt 인증서로 NGINX 인증서 등록하기
 

Let’s Encrypt 인증서로 NGINX SSL 설정하기

이 모범 사례에서는 Let’s Encrypt 클라이언트를 사용하여 인증서를 생성하는 방법과 이를 사용하도록 NGINX 오픈소스 및 NGINX Plus를 사용하여 nginx ssl 설정을 자동으로 구성하는 방법을 다룹니다.

nginxstore.com

728x90

'Linux' 카테고리의 다른 글

SSL 인증서 에러(No subject alternative DNS name matching)  (0) 2024.02.22
[테라폼] 리소스 구성 및 속성 참조  (0) 2024.02.16
프로메테우스(Prometheus), 그라파나(Grafana)를 Docker Compose로 설치하기  (0) 2024.02.08
DNS Qusery 지연 및 도메인 등록기관 이전  (3) 2023.11.23
tomcat 내 SecureRandom Error, [SHA1PRNG]  (0) 2023.11.23
'Linux' 카테고리의 다른 글
  • [테라폼] 리소스 구성 및 속성 참조
  • 프로메테우스(Prometheus), 그라파나(Grafana)를 Docker Compose로 설치하기
  • DNS Qusery 지연 및 도메인 등록기관 이전
  • tomcat 내 SecureRandom Error, [SHA1PRNG]
정주원
정주원
개인블로그
  • 정주원
    Joon.eng
    정주원
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Linux (41)
      • Windows (0)
      • Network (4)
      • Database (0)
      • Cloud (23)
      • Docker (3)
      • Ansible (2)
      • Etc (4)
  • 블로그 메뉴

    • 링크

      • GITLAB(woni)
    • 공지사항

    • 인기 글

    • hELLO· Designed By정상우.v4.10.0
    정주원
    NGINX SSL 인증서 등록
    상단으로

    티스토리툴바