Nginx에서 업그레이드 안전하지 않은 요청을 구성하는 방법

보안이 가장 중요한 디지털 시대에 이 가이드에서는 안전하지 않은 업그레이드 요청에서 안전하지 않은 업그레이드 요청을 구성하는 방법을 보여줍니다. 웹 개발에서 이 중요한 보안 기능은 브라우저가 HTTP 요청을 HTTPS로 자동 업그레이드하도록 지시합니다. 이를 통해 클라이언트와 서버 간의 모든 통신이 암호화되어 웹사이트의 전반적인 보안이 향상됩니다. NGINX에서 이 기능을 구성하면 사용자의 안전한 검색 환경을 유지하는 데 도움이 되며 더 나은 SEO 순위에 기여할 수 있습니다.

이 가이드는 NGINX에서 안전하지 않은 업그레이드 요청을 구성하는 단계를 안내하여 모든 HTTP 트래픽이 HTTPS로 리디렉션되도록 하고 웹 서버의 보안을 강화합니다.

Nginx에서 전역적으로 업그레이드 안전하지 않은 요청 추가

Nginx 구성 파일에 액세스

일반적으로 다음 위치에 있는 Nginx 구성 파일에 액세스하여 프로세스를 시작합니다. /etc/nginx/nginx.conf. 파일을 열려면 다음 명령을 사용하십시오.

sudo nano /etc/nginx/nginx.conf

이 파일을 편집하려면 관리자 권한이 필요하다는 점을 기억하는 것이 중요합니다. 이 단계에서는 모든 수정 사항이 안전하고 인증되었는지 확인합니다.

업그레이드 안전하지 않은 요청 헤더 삽입

nginx.conf 파일에서 http 차단하다. 여기에 모든 HTTP 요청을 HTTPS로 업그레이드하도록 브라우저에 명령하는 특정 줄을 추가해야 합니다. 이 개선 사항은 웹 사이트의 데이터 전송을 보호하는 데 중요합니다. 다음 줄을 삽입하세요.

add_header Content-Security-Policy "upgrade-insecure-requests";

구성 예:

http {
    ...
    add_header Content-Security-Policy "upgrade-insecure-requests";
    ...
}

테스트 업그레이드 안전하지 않은 요청이 활성 상태입니다.

이 지시문은 모든 요청이 자동으로 보안 HTTPS 연결로 업그레이드되도록 보장함으로써 웹사이트 보안에 중요한 역할을 하여 사용자 데이터를 보호하고 신뢰성을 향상시킵니다.

안전하지 않은 업그레이드 요청의 활성화 확인

변경 사항을 구현한 후 Nginx를 다시 시작하여 적용합니다. 다음 명령을 사용하십시오.

sudo systemctl restart nginx

헤더 활성화를 확인하려면 다음과 같은 도구를 사용하여 테스트를 수행하십시오. curl. 이 도구는 웹사이트의 응답 헤더를 검사하는 데 도움이 됩니다. 다음 명령을 실행합니다.

curl -I http://yourwebsite.com

다음을 찾으세요. Content-Security-Policy: upgrade-insecure-requests 응답의 줄. 그 존재는 안전하지 않은 요청에 대한 업그레이드가 성공적으로 활성화되었음을 확인합니다.

예상되는 터미널 출력:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Wed, 20 Dec 2023 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Content-Security-Policy: upgrade-insecure-requests
...

Nginx 서버 블록에 업그레이드 안전하지 않은 요청 추가

1단계: Nginx 서버 블록 구성에 액세스

도메인의 특정 서버 블록에 액세스하여 시작하세요. 이는 일반적으로 /etc/nginx/sites-available/yourdomain에 있습니다. 이 파일을 편집하려면 다음 명령을 사용하여 필요한 관리 권한이 있는지 확인하십시오.

sudo nano /etc/nginx/sites-available/yourdomain

이 단계는 Nginx 설정에 대한 도메인별 구성을 직접 변경하는 데 중요합니다.

Nginx 요청 헤더에서 업그레이드 안전하지 않음 구성

Nginx 서버 블록 구성에 다음을 추가하여 보안 강화에 중점을 둡니다. upgrade-insecure-requests 지령. 이 항목은 location / 차단하다. 이 지시문은 브라우저에 모든 HTTP 요청을 보다 안전한 HTTPS로 전환하도록 지시하여 웹사이트의 데이터 보안을 강화합니다.

다음 구성을 추가합니다.

server {
    ...
    location / {
        add_header Content-Security-Policy "upgrade-insecure-requests";
    }
    ...
}

이 설정은 특히 동일한 Nginx 서버에서 호스팅되는 여러 도메인 또는 하위 도메인이 있는 경우 개별 서버 블록을 보호하는 데 중요합니다.

안전하지 않은 업그레이드 요청의 기능 확인

변경 사항을 저장한 후 Nginx를 다시 시작하여 새 설정이 적용되는지 확인하세요.

sudo systemctl restart nginx

헤더가 활성화되었는지 확인하려면 다음과 같은 도구를 사용하십시오. curl HTTP 응답 헤더를 검사하려면 다음을 수행하세요.

curl -I http://yourdomain.com

이전 섹션과 마찬가지로 응답에서 Content-Security-Policy:upgrade-insecure-requests를 찾으세요. 이는 헤더가 특정 서버 블록에 대해 올바르게 구현되고 활성화되었음을 확인합니다.

Nginx 업그레이드 보안 요청: 고급 예

요청 방법에 따른 조건부 업그레이드

이 설정은 HTTP 요청 방법에 따라 동작을 차별화해야 하는 시나리오에 이상적입니다. 이는 업그레이드 안전하지 않은 요청 헤더를 선택적으로 적용하여 데이터 제출 문제로 이어질 수 있는 민감한 POST 요청에 대해 이를 방지합니다.

map $request_method $upgrade_insecure {
    POST   0;
    default 1;
}

server {
    ...
    location / {
        if ($upgrade_insecure) {
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

사용자 에이전트별 업그레이드

호환성을 위해서는 사용자의 브라우저에 따라 업그레이드 프로세스를 조정하는 것이 필수적일 수 있습니다. 이 구성은 Chrome 또는 Firefox와 같은 특정 사용자 에이전트에 대해서만 업그레이드를 활성화하여 보다 타겟화된 접근 방식을 제공합니다.

map $http_user_agent $upgrade_condition {
    ~*chrome 1;
    ~*firefox 1;
    default 0;
}

server {
    ...
    location / {
        if ($upgrade_condition) {
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

경로별 업그레이드 애플리케이션

특히 특정 섹션만 민감한 정보를 처리하는 환경에서는 사이트의 특정 영역에 보안 업그레이드를 적용하는 것이 중요할 수 있습니다. 이 설정을 사용하면 다음과 같은 지정된 경로에 대한 업그레이드가 가능합니다. /secure-area/.

server {
    ...
    location /secure-area/ {
        add_header Content-Security-Policy "upgrade-insecure-requests";
        ...
    }
    location / {
        ...
    }
}

추가 보안 헤더와 업그레이드 통합

Upgrade-insecure-requests 지시문을 다른 보안 헤더와 결합하면 서버의 전반적인 보안이 향상됩니다. 이 포괄적인 접근 방식은 강력한 보안 조치가 필요한 환경에 이상적입니다.

server {
    ...
    location / {
        add_header Content-Security-Policy "upgrade-insecure-requests; default-src https:";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options SAMEORIGIN;
        ...
    }
}

사용자 정의 로깅으로 업그레이드 구현

이 구성은 모니터링과 로깅이 필수적인 환경에서 업그레이드 프로세스를 추적하는 데 도움이 됩니다. HTTP에서 HTTPS로 업그레이드된 요청을 기록하여 보안 감사 및 분석에 도움을 줍니다.

map $scheme $log_upgrade {
    http 1;
    default 0;
}

server {
    ...
    location / {
        if ($log_upgrade) {
            access_log /var/log/nginx/upgrade.log;
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

이러한 고급 구성은 HTTP에서 HTTPS로 업그레이드하는 방법과 시기를 세밀하게 제어하여 특정 요구 사항을 충족하고 Nginx 서버의 보안과 기능을 향상시킵니다.

결론

NGINX에서 안전하지 않은 업그레이드 요청을 구성하면 모든 HTTP 트래픽이 자동으로 HTTPS로 업그레이드되어 웹 사이트의 보안이 강화됩니다. 이 구성은 사용자 데이터를 보호할 뿐만 아니라 사이트의 SEO를 개선하는 데도 도움이 됩니다. 최적의 보안과 성능을 유지하려면 NGINX 설정을 정기적으로 검토하고 업데이트하세요. 웹 트래픽이 안전하고 암호화되어 있다는 사실을 알고 마음의 평화를 누려보세요.

Joshua James

코멘트를 남겨주세요