Nginx SSL 인증서 설치[CentOS 7]

Nginx SSL 인증서 설치를 진행합니다.

1. 인증서 신청하기

SSL 인증서는 30일 무료 SSL을 https://zerossl.com/ 사이트에서 신청했습니다.

Nginx SSL 설치-Free 30일 신청 1
Nginx SSL 설치-Free 30일 신청 2
Nginx SSL 설치-Free 30일 신청 3

DCV 인증은 DNS 인증 방식으로 진행했습니다.

Nginx SSL 설치-Free 30일 신청 4_DEV DNS 인증

네임서버에서 CNAME 레코드를 설정합니다.

Nginx SSL 설치-Free 30일 신청 4_DEV DNS 인증2

설정 후 인증 신청을 한 후 대기 시간이 소요됩니다.

Nginx SSL 설치-Free 30일 신청 5

인증이 완료되면 인증서 파일을 다운로드 받은 후 서버에 인증서 설치 작업을 진행합니다.

Nginx SSL 설치-Free 30일 신청 6

2. 방화벽 설정

윈도우 처음 설치 후 특별한 설정을 하지 않았다면 기본 방화벽은 firewallD 데몬입니다.

firewall-cmd --permanent --add-service=https
firewall-cmd --reload

3. ssl 인증서 업로드

lrzsz 툴을 설치 후 드래그 하여 파일을 업로드 합니다.

cd /etc/nginx/
mkdir ssl
yum -y install lrzsz

4. user.conf SSL 적용

기존 80번 포트의 서버 블록에서 추가로 443 포트의 SSL 적용할 서버 블록을 만들어서 SSL 인증서 적용할 내용을 추가합니다.

# http 서버 블록
server {
    listen       80;
    server_name  mydomain.com;
    #http로 접속할 경우 https로 리다이렉트
    return 301 https://$host$request_uri;
    location / {
        root   /home/testuser/www;
        index  index.html index.htm index.php;
        charset utf-8;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root           /home/testuser/www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

# HTTPS 서버 블록 설정 추가
server {
    listen       443 ssl;
    server_name  mydomain.com;

    ssl_certificate     /etc/nginx/ssl/certificate.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;

    root   /home/testuser/www;
    index  index.html index.htm index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        root           /home/testuser/www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
Nginx 서버 블록
├── HTTP 서버 블록 (포트 80)
   ├── server_name: localhost; or domain(mydomain.com)
   ├── 리다이렉트: http  https (return 301 https://$host$request_uri)
   ├── location /
      ├── root: /home/testuser/www
      ├── index: index.html, index.htm, index.php
      └── charset: utf-8
   ├── location = /50x.html
      └── root: /usr/share/nginx/html
   └── location ~ \.php$
       ├── root: /home/testuser/www
       ├── fastcgi_pass: 127.0.0.1:9000
       ├── fastcgi_index: index.php
       ├── fastcgi_param: SCRIPT_FILENAME = $document_root$fastcgi_script_name
       └── include: fastcgi_params

├── HTTPS 서버 블록 (포트 443 ssl)
    ├── server_name: localhost; or domain(mydomain.com)
    ├── ssl_certificate: /etc/nginx/ssl/certificate.crt
    ├── ssl_certificate_key: /etc/nginx/ssl/private.key
    ├── root: /home/testuser/www
    ├── index: index.html, index.htm, index.php
    ├── charset: utf-8
    ├── location /
       └── try_files: $uri $uri/ =404
    ├── location ~ \.php$
       ├── root: /home/testuser/www
       ├── fastcgi_pass: 127.0.0.1:9000
       ├── fastcgi_index: index.php
       ├── fastcgi_param: SCRIPT_FILENAME = $document_root$fastcgi_script_name
       └── include: fastcgi_params
    └── location = /50x.html
        └── root: /usr/share/nginx/html

5. Nginx 재시작 및 SSL 인증서 적용 사항 확인

nginx -s reload

Nginx SSL 인증서가 정상적으로 설치 되었습니다.

Nginx SSL 설치 웹에서 확인하기

Similar Posts

  • 리눅스 which whereis locate: 3가지 위치(경로) 확인 명령어

    리눅스 which와 whereis 명령어 명령어의 위치를 알 수 있는 명령어는 find 명령어를 이용해서 파일을 찾을 수 있지만 find 명령어는 시간이 소요되는 단점도 존재합니다. locate 명령어는 파일명을 빠르게 검색할 때 사용할 수 있습니다. 리눅스 기본 명령어 3가지에 대해 알아 보겠습니다. 목차1. 인증서 신청하기2. 방화벽 설정3. ssl 인증서 업로드4. user.conf SSL 적용5. Nginx 재시작 및…

  • 리눅스 touch 명령어

    touch 명령어는 파일의 날짜 시간 정보를 변경하는 명령어입니다. 아무 옵션 없이 사용할 경우 파일의 최근 사용 시간, 변경 시간이 서버의 현재 시간으로 변경됩니다. 파일이 없는 파일명을 입력할 경우 새로운 크기가 0인 빈 파일이 생성됩니다. 목차1. 인증서 신청하기2. 방화벽 설정3. ssl 인증서 업로드4. user.conf SSL 적용5. Nginx 재시작 및 SSL 인증서 적용 사항 확인✅…

  • 리눅스 퍼미션(4,2,1)과 소유권 | chmod, chown, umask 명령어 | 스티키 비트

    리눅스 퍼미션(Permission)은 권한(&허가)을 의미합니다. 유닉스 계열 운영 체제들은 MS-DOS 계열의 운영 체제들은 멀티 테스킹 시스템이 아니며 멀티 유저 시스템 역시 아닙니다. 보통 컴퓨터는 하나의 키보드와 모니터를 가지고 한 명이 사용하지만 멀티 유저 시스템인 리눅스는 한 명 이상이 사용할 수 있다는 것을 의미합니다. 유닉스 계열의 멀티 유저 시스템은 운영 체제 설계 초기부터 깊게 내장된…

  • 리눅스 who, w 명령어 & user 명령어

    리눅스 who 명령어는 현재 서버에 로그인한 사용자 리스트를 보여주는 명령어입니다. w 명령어는 현재 시스템에 로그인한 사용자와 사용자의 작업 내용을 보여주는 명령어로 각각의 차이가 있습니다. 목차1. 인증서 신청하기2. 방화벽 설정3. ssl 인증서 업로드4. user.conf SSL 적용5. Nginx 재시작 및 SSL 인증서 적용 사항 확인✅ 리눅스 who 명령어 현재 접속 사용자(USER) 터미널 유형(TTY) 접속 시간…

  • [Linux] Let’s Encrypt 와일드카드 인증서 설치(Certbot, Feat. Cloudflare)

    그동안 let’s Encrypt 일반 인증서를 Certbot 설치 후 사용하다가 Let’s Encrypt 와일드카드 인증서를 설치해서 사용해야 겠다는 생각을 하게 되었습니다. 현재 서버는 LightSail Alma Linux apache로 구동되는 서버인데 차후 상황을 봐서 Open Lightspeed 서버로 변경을 고려중이지만 한참 뒤가 될 것 같습니다. 현재는 apache 기준으로 Let’s Encrypt 와일드카드 인증서를 설치합니다. 와일드카드 SSL 설치 조건 중 하나가 Certbot의…

  • 리눅스 hosts.allow 및 hosts.deny 설정

    리눅스 서버에서 특정 IP만 허용 및 특정 IP에 대한 차단을 위해 리눅스 hosts.allow 및 hosts.deny 설정을 각각 진행할 수 있습니다. iptables 방화벽에서 특정 IP만 SSH 접속을 허용하는 방법을 사용할 수 있지만 1개 이상의 IP가 SSH에 접속해야 하는 경우 hosts.allow 설정을 진행할 수 있습니다. 목차1. 인증서 신청하기2. 방화벽 설정3. ssl 인증서 업로드4. user.conf SSL…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 5   +   6   =