HTTPS 로 서비스를 제공해야 사용자도 안심할수 있고 구글에서도 높은 점수를 받을 수 있습니다.
nginx 에서 HTTPS 를 제대로 설정했다면 그후에는 HTTP 로 들어오는 연결을 HTTPS 로 리다이렉토하도록 설정하는 게 좋습니다.
설정
강제 HTTPS 전환 설정은 아주 간단합니다.
이제 example.com 가상 호스트 설정을 다음과 같이 HTTP/HTTPS 설정을 했다고 가정해 보도록 하겠습니다.
server {
listen 80 443 ssl https;
server_name example.com
root html;
ssl on;
ssl_certificate /etc/pki/tls/certs/example.com.chained.crt;
ssl_certificate_key /etc/pki/tls/private/example.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_prefer_server_ciphers on;
location ~ /\.ht {
deny all;
}
}
CODE
강제 전환을 위해 호스트 설정에서 server 블록을 80 과 443으로 나눠줍니다.
server {
listen 80;
server_name example.com;
root html;
}
server {
listen 443 ssl https;
server_name example.com
root html;
ssl on;
ssl_certificate /etc/pki/tls/certs/example.com.chained.crt;
ssl_certificate_key /etc/pki/tls/private/example.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_prefer_server_ciphers on;
location ~ /\.ht {
deny all;
}
}
CODE
이제 위쪽 HTTP 로 제공하는 서버 블록에 location 설정을 다음과 같이 추가해 주면 모든 HTTP 요청을 HTTPS 로 301 Redirect 응답을 보내줍니다.
server {
listen 80;
server_name example.com;
root html;
location / {
return 301 https://example.com$request_uri;
}
}
CODE
같이 보기