logo

Nginx SSL 적용

2019. 03. 19.

PHP 환경을 이용할 때 많이 사용하는 Nginx 환경에서 SSL 적용방법에 대해 아래와 같이 기록을 남겨둡니다.

 

웹 인증서를 발급받으셧다면 crt, key, pem 파일들을 제공받으셨을 겁니다. 먼저 이 파일들을 웹 서버에 두어야 하기 때문에 파일질라나 기타 ftp 프로그램을 이용해 웹서버에 위치시킵니다.

 

저같은 경우엔 /etc/nginx/ssl 위치에 인증서를 보관하기로 했습니다.

그리고 nginx 서버가 이 인증서를 인식하게하기 위해, 그리고 더 나이가 http 연결을 https 연결로 리다이렉팅 하기위해 몇가지 서버설정을 해주어야 합니다.

 

 

먼저 기존 80포트로 들어오는 http 요청을 https 요청으로 리다이렉트해주기 위해 서버 설정을 2개 더 위에처럼 적어줍니다. (기존 서버 설정 위에 추가로적는 사항입니다.)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# sudo vi /etc/nginx/sites-available/default
...
 
server {
        listen 80;
        listen [::]:80;
        server_name erulabo.com www.erulabo.com;
        return 301 https://erulabo.com$request_uri;
}
 
server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name www.erulabo.com;
        return 301 https://erulabo.com$request_uri;
 
        ssl on;
        ssl_certificate /etc/nginx/ssl/erulabo_com.crt;
        ssl_certificate_key /etc/nginx/ssl/erulabo_com_SHA256WITHRSA.key;
        ssl_prefer_server_ciphers on;
}
cs

 

이어서 기존 서버설정에서 80번 포트의 요청을 아래처럼 #주석으로 처리합니다.

 

 

그리고 여기에도 ssl 관련 설정을 추가합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# sudo vi /etc/nginx/sites-available/default
...
 
server {
    ...
 
    listen [::]:443 ssl default_server;
 
    server_name erulabo.com;
 
    ssl on;
    ssl_certificate /etc/nginx/ssl/erulabo_com.crt;
    ssl_certificate_key /etc/nginx/ssl/erulabo_com_SHA256WITHRSA.key;
    ssl_prefer_server_ciphers on;
 
    ...
cs

 

모든 서버설정을 수정했으면 :wq로 변경사항을 저장하고 nginx 서버를 재시작합니다.

 

위 설정을 적용하면 http://erulabo.com 접근요청은 서버에서 자동으로 https://erulabo.com 으로 리다이렉트 해주고 모든 연결은 보안설정됩니다.

끝!

 

Nginx 404 리다이렉트

Nginx 404 리다이렉트

2019. 03. 19.
ssh 터미널 접근시 발생하는 문제에 대해

ssh 터미널 접근시 발생하는 문제에 대해

2019. 03. 19.
413 Request Entity Too Large 문제에 대해

413 Request Entity Too Large 문제에 대해

2019. 03. 19.
홈페이지 파비콘(favicon) 만들고 등록하기

홈페이지 파비콘(favicon) 만들고 등록하기

2019. 03. 18.
크리에이티브 커먼즈, CC 표시에 대해

크리에이티브 커먼즈, CC 표시에 대해

2019. 03. 18.
로그 더 보기