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_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
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 |