⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
개발
Nginx SSL 적용
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 으로 리다이렉트 해주고 모든 연결은 보안설정됩니다.
끝!
D.2019-03-19
V.480