작은숲:위키노트/Nginx HTTPS 설정: 두 판 사이의 차이
잔글 (문자열 찾아 바꾸기 - "분류:서버" 문자열을 "분류:위키노트/서버" 문자열로) |
|||
| 40번째 줄: | 40번째 줄: | ||
[[분류:위키노트/공유]] | [[분류:위키노트/공유]] | ||
[[분류:위키노트/웹]] | [[분류:위키노트/웹]] | ||
[[분류:서버]] | [[분류:위키노트/서버]] | ||
[[분류:위키노트/소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|{{PAGENAME}}|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]] | [[분류:위키노트/소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|{{PAGENAME}}|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]] | ||
2021년 3월 28일 (일) 12:38 판
Nginx에서 HTTPS 연결을 설정하는 것은 server 블럭에서 한다. 아파치와 비교해서 크게 다른 것은 없다. 다만 SSL 인증서 설정할 때 차이가 있으니 이것만 주의하면 된다.
server {
listen 80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}server {
listen 443 ssl;
server_name www.example.com;
root /var/www/example;
access_log /var/log/nginx/example-access.log main;
ssl on;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/pki/ssl-unified.crt;
ssl_certificate_key /etc/pki/ssl.key;
}
첫 번째 server 블럭은 80 포트, 즉 HTTP로 접속하면 HTTPS로 보내준다. 실제 SSL 적용은 두 번째 server 블럭에서 하고 있다.
아파치에서는 mod_ssl 확장 기능을 올려야하고 서버에서 SSL에 대한 설정을 따로 해야 하지만 Nginx에서는 server 블럭에서 listen 443 ssl;과 ssl on;을 설정하면 된다. 아파치의 가상 호스트 설정에서 SSL 설정은 대략 아래와 비슷하다.
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/ssl.crt
SSLCertificateKeyFile /etc/pki/ssl.key
SSLCertificateChainFile /etc/pki/sub.class1.server.ca.pem
SSLCACertificateFile /etc/pki/startssl/ca.pem
이처럼 아파치에서는 중계자 인증서(sub.class1.server.ca.pem)와 CA 인증서(ca.pem)를 따로 설정하지만 Nginx에서는 서버 인증서(ssl.crt)에 함께 넣어서 설정한다. 그래서 Nginx에서 SSL 설정을 하기 위해서는 이 세 인증서를 합해야 한다.
# cat ssl.crt sub.class1.server.ca.pem ca.pem > ssl-unified.crt
이 부분만 주의하면 크게 문제되는 부분은 없다.