>  기사  >  운영 및 유지보수  >  Nginx의 HTTPS 배포 및 보안 성능 최적화

Nginx의 HTTPS 배포 및 보안 성능 최적화

WBOY
WBOY원래의
2023-06-10 17:13:401061검색

Nginx는 고성능 웹 서버이자 역방향 프록시 서버로서 애플리케이션 배포 및 로드 밸런싱에 널리 사용됩니다. 보안과 환경 보호에 대한 인식이 점차 향상되면서 HTTPS는 현대 웹 애플리케이션에서 없어서는 안 될 부분이 되었습니다. 이 기사에서는 Nginx의 HTTPS 배포 및 보안 성능 최적화에 중점을 둘 것입니다.

1. Nginx의 HTTPS 배포

  1. 인증서 신청

먼저 SSL 인증서를 신청하려면 CA(인증 기관)에 가야 합니다. 신청이 성공적으로 완료되면 인증서 파일(.crt)과 개인 키 파일(.key)을 받게 됩니다.

  1. HTTPS 구성

Nginx의 HTTPS 구성에는 HTTPS로의 HTTP 전달, Nginx 인증서 구성 및 HTTPS 구성의 세 가지 측면이 포함되어야 합니다.

(1) HTTP를 HTTPS로 전달

Nginx 구성 파일에서 사용자가 HTTP 기본 포트 80에 액세스할 때 자동으로 HTTPS의 기본 포트 443으로 이동할 수 있도록 HTTP 구성 섹션을 추가해야 합니다.

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

(2) Nginx 인증서 구성

Nginx 구성 파일에 방금 적용한 SSL 인증서와 개인 키 파일을 구성 파일에 추가해야 합니다.

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;
    ...
}

(3) HTTPS 구성

HTTP/2 프로토콜 활성화, SSLv3 비활성화 등과 같은 HTTPS 프로토콜의 특정 옵션을 구성해야 합니다.

http2_push_preload on;  #启用HTTP/2协议的推送预加载
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #指定启用的TLS协议版本
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;  #指定加密套件
ssl_prefer_server_ciphers on;  #常用加密套件优先顺序为服务端指定的值
ssl_session_cache shared:SSL:10m;  #指定SSL session缓存
ssl_session_timeout 10m;  #指定SSL session超时时间

2. Nginx 보안 성능 최적화

HTTPS 서비스를 배포한 후에는 서비스의 안정성과 보안을 보장하기 위해 다음 보안 성능 최적화 문제에도 주의해야 합니다.

  1. OCSP 응답 감지

OCSP (온라인 인증서 상태 프로토콜)은 인증서가 해지되었는지 여부를 감지하는 데 사용됩니다. Nginx의 HTTPS 구성에서는 다음 절차를 통해 OCSP 응답 감지를 수행할 수 있습니다.

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;

핵심 사항은 다음과 같이 해석됩니다.

  • ssl_stapling on OCSP 응답 켜기
  • ssl_stapling_verify on OCSP 응답 확인 켜기
  • ssl_trusted_certificate /path /to/fullchain .pem 인증서 체인 구성
  • resolver 8.8.8.8 8.8.4.4 valid=300s DNS 확인자 구성
  • resolver_timeout 10s DNS 확인 시간 구성
    DNS 확인자는 인식된 신뢰할 수 있는 확인자로 구성되어야 하며 여기서 구성됩니다. Google 공개 DNS로.
  1. HSTS 활성화

HSTS(HTTP 엄격한 전송 보안)는 사용자가 HTTP 페이지로 하이재킹되는 것을 방지하여 보안 수준을 높입니다. Nginx의 HTTPS 구성에서 다음과 같이 HSTS를 활성화할 수 있습니다.

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

핵심 사항은 다음과 같이 설명됩니다.

  • max-age=31536000 HSTS 헤더의 기간 정의
  • includeSubDomains 모든 하위 도메인 활성화
  1. 보안 프로토콜 활성화

기본적으로 Nginx는 TLSv1 및 TLSv1.2만 활성화합니다. 다른 암호화 프로토콜을 활성화해야 하는 경우 다음과 같이 구성할 수 있습니다.

ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

핵심 사항은 다음과 같이 해석됩니다.

  • TLSv1.3은 활성화됨을 정의합니다. 암호화 프로토콜
  1. 은 HMAC 키 알고리즘

을 활성화합니다. HTTPS를 통해 전송되는 데이터에는 데이터를 암호화하기 위한 키가 필요합니다. HMAC(해시 기반 메시지 인증 코드)를 사용하면 데이터 전송 보안을 향상시킬 수 있습니다. Nginx 구성 파일에서 HMAC를 활성화하는 방법은 다음과 같습니다.

ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;

핵심 사항은 다음과 같이 해석됩니다.

  • AES256 AES256 암호화 알고리즘 활성화
  • +SHA256 SHA256 해시 기능 활성화
  • +HMAC HMAC 키 알고리즘 활성화

결론

이 글에서는 Nginx HTTPS 배포 및 보안 성능 최적화에 대한 주요 지식 포인트를 소개합니다. 점점 더 복잡해지는 최신 웹 애플리케이션의 맥락에서 HTTPS의 보안 및 성능 요구 사항도 점점 더 높아지고 있습니다. 시스템 관리자로서 지식 보유량을 지속적으로 업데이트하고 새로운 기술과 새로운 환경에 대한 전문적인 비전을 유지하는 것이 중요합니다. 매우 필요하고 중요합니다.

위 내용은 Nginx의 HTTPS 배포 및 보안 성능 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.