Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법입니다

개요

Ncloud (네이버 클라우드) Ubuntu 서버에서 NginX 최신 버전에 SSL 인증서를 설정하고, http로 접속 시에 https로 리다이렉트하는 방법에 대한 내용을 정리해보겠습니다.

서버 환경

⁃ OS: Ubuntu 20.04
⁃ NginX: NginX 1.21.6
⁃ SSL 인증서: 로컬 테스트용 인증서

NginX 설치

Ubuntu에 Nginx 최신 버전을 설치하는 방법은 아래 문서에서 확인하시면 됩니다.

테스트 사이트 접속

설치한 서버에 IP 주소로 접속해 봅니다.

Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

테스트용 SSL 인증서 생성

SSL 인증서를 저장할 디렉토리를 생성하고 30일 기한의 테스트용 인증서 파일 (nginx-ssl.key, nginx-ssl.crt)을 생성합니다. 여기서는 nginx-ssl-test.com 이라는 임의의 테스트용 도메인을 사용하겠습니다.

~# mkdir /root/ssl/
~# openssl req -x509 -days 30 -nodes -newkey rsa:2048 \
   -keyout /root/ssl/nginx-ssl.key -out /root/ssl/nginx-ssl.crt
Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

인증서 파일이 제대로 저장되었는지 확인합니다.

Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

NginX SSL 환경 설정

NginX 환경 설정 파일 (/etc/nginx/conf.d/default.conf) 을 아래와 같이 수정합니다.

~# vi /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  nginx-ssl-test.com;
    return 301 https://$host$request_uri;
}

server {
    listen       443 ssl;
    server_name  nginx-ssl-test.com;

    ssl_certificate /root/ssl/nginx-ssl.crt;
    ssl_certificate_key /root/ssl/nginx-ssl.key;

    ### 이하 생략 ###
}
~# systemctl restart nginx

SSL 인증서 파일 설정

여기서는 테스트용으로 생성한 인증서 파일의 위치를 아래와 같은 양식으로 지정합니다.
외부 공식 인증서 사이트에서 발급 받은 인증서도 원하는 곳에 저장하고 아래와 같이 위치를 지정해주면 됩니다.

    ssl_certificate /root/ssl/nginx-ssl.crt;
    ssl_certificate_key /root/ssl/nginx-ssl.key;

http 접속 시 https 리다이렉트

NginX 웹서버에 http 접속 시에 https로 강제 리다이렉트를 하려고 할 경우에는 http로 접속하는 포트 (일반적으로 80) 설정에 아래와 같이 지정해주면 리다이렉트 됩니다.

    return 301 https://$host$request_uri;
Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

hosts 파일 수정

테스트용으로 임의 설정한 도메인으로 접속하게 될 경우에는 hosts 파일을 수정해야 합니다.
실제 도메인을 사용할 경우에는 아래 과정이 필요 없기에 다음 단계로 바로 이동하시면 됩니다.

윈도우 10에서 hosts 파일은 C:\Windows\System32\drivers\etc 에 존재하는데 직접 수정할 수가 없으므로 다음과 같은 단계를 거쳐야 합니다.

  1. C:\Windows\System32\drivers\etc\hosts 파일을 임의의 작업 폴더 (예: D:\Work)로 복사합니다.
  2. 복사한 hosts 파일을 수정해서 123.456.789.123 nginx-ssl-test.com 처럼 접속할 IP 주소와 도메인을 추가합니다.
  3. 수정한 파일을 C:\Windows\System32\drivers\etc 위치로 덮어쓰기 합니다.
  4. 덮어쓰기 할 때 관리자 권한이 필요하다는 안내 메시지가 나타나면 [계속] 버튼을 클릭합니다.
Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법
Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법
Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

https 접속 테스트

모든 설정을 마친 후에 테스트로 설정한 nginx-ssl-test.com 으로 접속하면 아래와 같이 https로 접속되는 것을 확인할 수 있습니다.
다만 로컬 테스트용 인증서이기 때문에 [주의 요함]이라는 메시지가 나타납니다.

Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

테스트 인증서 확인

[주의 요함] 부분을 클릭하면 인증서 부분에 [인증서가 올바르지 않음]이라는 메시지가 보이는데 이곳을 클릭합니다.

Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

테스트 인증서 정보

아래와 같이 처음에 설정한 내용이 인증서 정보에 올바르게 표시되는 것을 확인할 수 있습니다.

Ncloud Ubuntu 서버에 NginX SSL 인증서를 설정하는 방법

참고 URL

  1. NginX Linux packages 설치 가이드
  2. Ubuntu에서 NginX 설치, 설정하는 방법
  3. CentOS에서 NginX SSL 인증서 설정하는 방법