>운영 및 유지보수 >엔진스 >웹사이트 데이터 전송 보안을 보호하기 위한 Nginx HTTPS 구성 튜토리얼

웹사이트 데이터 전송 보안을 보호하기 위한 Nginx HTTPS 구성 튜토리얼

PHPz
PHPz원래의
2023-07-04 13:43:421605검색

웹사이트 데이터 전송 보안을 보호하기 위한 Nginx HTTPS 구성 튜토리얼

인터넷의 급속한 발전과 함께 웹사이트 보안 문제에 대한 관심이 높아지고 있습니다. 웹사이트 데이터 전송의 보안을 보호하기 위해 HTTPS 프로토콜을 사용하는 것은 매우 중요한 조치입니다. 이 기사에서는 웹사이트에서 데이터 전송의 보안을 보장하기 위해 Nginx를 사용하여 HTTPS를 구성하는 방법을 소개합니다.

1. SSL 인증서 설치
HTTPS를 구성하기 전에 웹사이트의 신원과 데이터 전송 보안을 보장하기 위해 SSL 인증서를 얻어야 합니다. 타사 인증 기관(CA)에서 인증서를 구매하거나 Let's Encrypt와 같은 무료 오픈 소스 인증서 생성 도구를 사용할 수 있습니다.

인증서 설치 단계는 다음과 같습니다.

  1. 인증서 다운로드: 인증서 파일(공개 키, 개인 키 및 인증서 체인 포함)을 서버에 다운로드합니다. 일반적으로 인증서 파일의 확장자는 .crt 및 .key입니다.
  2. SSL 저장소 파일 생성: openssl 명령을 사용하여 .crt 및 .key 파일을 하나의 .pem 형식 파일로 병합합니다.
    openssl rsa -in privateKey.key -text > privateKey.pem
    openssl x509 -inform PEM -in Certificate . crt > Certificate.pem
    cat privateKey.pem Certificate.pem > ssl.crt

2. Nginx 구성 HTTPS

  1. Nginx 구성 파일을 엽니다. 일반적으로 /etc/nginx/nginx.conf 또는 /usr에 있습니다. /로컬/nginx/conf/nginx.conf.
  2. HTTPS 서비스 블록 추가: http 블록 내에 다음 구성을 추가합니다.
    server {

    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/privateKey.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ......

    }

    • listen 443 ssl: HTTPS 프로토콜의 기본 포트 443을 수신하고 SSL을 활성화합니다.
    • server_name: 도메인 이름으로 바꿉니다.
    • ssl_certificate: SSL 인증서의 경로를 지정합니다.
    • ssl_certificate_key: SSL 개인 키의 경로를 지정합니다.
    • ssl_protocols: 지원되는 SSL/TLS 프로토콜 버전을 지정합니다.
    • ssl_ciphers: 지원되는 암호화 알고리즘을 지정합니다.
  3. HTTP에서 HTTPS로 리디렉션 구성: http 블록 내에 다음 구성을 추가합니다.
    server {

    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;

    }

    사용자가 HTTP URL에 액세스하면 Nginx는 자동으로 이를 HTTPS URL로 리디렉션합니다.

  4. 구성 저장 및 다시 로드: 구성 파일을 저장하고 다음 명령을 실행하여 Nginx 서비스를 다시 시작합니다.
    sudo service nginx restart

이 시점에서 Nginx HTTPS 서비스가 성공적으로 구성되었습니다.

3. HTTPS 구성 최적화
웹사이트의 보안과 성능을 더욱 향상하려면 다음과 같은 최적화 조치를 취할 수 있습니다.

  1. HTTP/2 프로토콜 활성화: Nginx의 HTTP/2 모듈을 사용하여 HTTPS 프로토콜을 업그레이드합니다. HTTP/2는 웹사이트의 로딩 속도와 성능을 향상시킵니다.
    서버 블록 추가:
    listen 443 ssl http2;
  2. OCSP 스테이플링 활성화: OCSP 스테이플링은 SSL 확인의 속도와 보안을 향상시키는 기술입니다. 서버 블록에 추가:
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    HTTP Strict Transport Security(HSTS) 구성: HSTS는 모든 HTTP 요청을 강제로 반복할 수 있습니다. HTTPS로 연결하고 중간자 공격을 방지합니다.
  3. 서버 블록에 추가:
  4. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

  5. 4. HTTPS 구성의 일반적인 문제 및 해결 방법
HTTPS를 구성할 때 자주 묻는 질문(FAQ)이 발생할 수 있습니다. . 다음은 몇 가지 일반적인 문제와 해결 방법입니다.


구성 파일 오류: Nginx 구성 파일이 올바른지 확인하세요. 특히 ssl_certificate 및 ssl_certificate_key 경로가 올바른지 확인하세요.
  1. 인증서 오류: SSL 인증서가 유효하고 도메인 이름과 일치하는지 확인하세요. 인증서의 유효성은 브라우저에서 확인할 수 있습니다.
  2. 방화벽 문제: 방화벽을 사용하는 경우 포트 443(HTTPS 프로토콜)이 열려 있는지 확인하세요.
  3. SSL/TLS 프로토콜 문제: 일부 클라이언트는 이전 버전의 SSL/TLS 프로토콜을 지원하지 않을 수 있습니다. ssl_protocols에 TLSv1.2만 유지하면 이 문제를 해결할 수 있습니다.
  4. 결론
Nginx로 HTTPS 프로토콜을 구성함으로써 웹사이트에 보다 안전한 데이터 전송 채널을 제공할 수 있습니다. 이 문서에서는 SSL 인증서를 설치하고 Nginx의 HTTPS 서비스를 구성하는 방법을 소개하고 몇 가지 최적화 구성과 일반적인 문제에 대한 솔루션을 제공합니다. 이 기사가 귀하에게 도움이 되기를 바라며 귀하의 웹사이트 데이터 전송을 더욱 안전하고 안정적으로 만들 수 있기를 바랍니다.

위 내용은 웹사이트 데이터 전송 보안을 보호하기 위한 Nginx HTTPS 구성 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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