해결 방법: https 페이지에서 http 리소스를 로드할 때 발생하는 오류 해결

HTTP 리소스를 로드할 때 HTTPS 페이지에서 오류를 보고하는 이유는 보안상의 이유입니다.

HTTPS(HyperText Transfer Protocol Secure)는 SSL/TLS 암호화 통신을 사용하여 데이터 전송을 보호하는 프로토콜로, 클라이언트와 서버 간의 안전한 연결을 보장합니다.

HTTPS 페이지가 암호화되지 않은 HTTP 리소스를 로드하려고 시도하면 다음과 같은 문제가 발생합니다.

혼합 콘텐츠 경고: 브라우저는 현재 페이지에 보안되지 않고 암호화되지 않은 콘텐츠가 포함되어 있음을 사용자에게 알리기 위해 경고를 발행합니다. 이러한 경고는 웹사이트에 대한 사용자의 신뢰를 감소시키고 악의적인 공격이나 데이터 침해의 위험을 증가시킬 수 있습니다.

로드 차단됨: 최신 브라우저는 기본적으로 HTTPS 페이지에서 암호화되지 않은 HTTP 리소스를 로드하는 것을 허용하지 않습니다. 이는 사용자 개인 정보 보호 및 보안을 강화하기 위해 취한 조치입니다.

TLS로 보호되지 않음: HTTP 요청을 통해 민감한 정보(예: 로그인 자격 증명, 개인 식별 정보 등)를 보내거나 받을 때 해당 정보는 전송 중에 SSL/TLS 암호화로 보호되지 않으며 해커가 쉽게 가로채거나 변조할 수 있습니다.

http와 https의 차이점


HTTP(Hypertext Transfer Protocol) 및 HTTPS(HTTP Secure)는 클라이언트와 서버 간에 데이터를 전송하는 데 사용되는 프로토콜입니다.

주요 차이점은 다음과 같습니다.

보안: HTTPS는 SSL/TLS 암호화를 사용하여 데이터 전송 중 개인 정보 보호 및 무결성을 보호하는 반면, HTTP는 암호화 메커니즘을 제공하지 않으므로 데이터를 일반 텍스트로 전송할 수 있습니다. 이는 HTTPS를 통해 전송된 데이터가 더 안전하고 도청이나 변조에 덜 취약하다는 것을 의미합니다.

네트워크 통신 방법: HTTP는 기본 네트워크 통신 프로토콜로 TCP/IP를 사용하고 기본적으로 포트 80을 사용하는 반면, HTTPS는 HTTP 기반 SSL/TLS 암호화 계층을 추가하고 보안 연결을 위해 포트 443을 사용합니다.

인증서 확인: HTTPS에서는 사용자가 합법적이고 신뢰할 수 있는 서비스와 상호 작용하고 있는지 확인하기 위해 디지털 인증서를 사용하여 웹사이트의 신원을 확인해야 합니다. 이는 중간자 공격 및 DNS 하이재킹과 같은 악의적인 동작을 방지하는 데 도움이 됩니다. HTTP는 인증서 확인을 요구하지 않으며 위장되거나 변조될 수 있습니다.

SEO 영향: 검색 엔진은 일반적으로 HTTPS 프로토콜을 사용하는 웹 사이트에 우선 순위를 부여하고 더 일찍 순위를 매깁니다. 따라서 검색 엔진 최적화(SEO)가 우려된다면 HTTPS 활성화를 고려해야 합니다.

원칙 준수
전송 중에 전체 웹페이지가 적절하게 보호되도록 하려면 다음 원칙을 준수하는 것이 좋습니다.

링크를 사용하여 HTTPS 연결을 지원하여 서비스를 제공합니다.
HTTP 리소스 사용이 불가피한 상황에서는 프록시 서버나 기타 보안 수단을 사용하여 요청을 처리하는 것이 좋습니다.
해결 방법:
https 리소스에 액세스할 수 있는지 여부에 따라 두 가지 유형의 솔루션이 있습니다.

오류 보고 리소스는 https 요청 액세스를 지원합니다.
오류 보고 리소스는 https 요청 액세스를 지원하지 않습니다. 오류
보고 리소스는 https 요청 액세스를 지원합니다.
HTTPS 프로토콜을 사용하도록 모든 리소스 링크를 업데이트하세요.
URL에서 http://를 https://로 수동 교체하여 모든 리소스가 안전한 방식으로 로드되었는지 확인하세요.

오류 보고 리소스는 https 요청 액세스를 지원하지 않습니다.
위에서 언급한 두 번째 원칙은 Nginx를 사용하여 문제를 해결할 수 있다는 것입니다.

Nginx란 무엇입니까?
Nginx("engine-x"로 발음)는 고성능 오픈 소스 리버스 프록시 서버이자 웹 서버입니다. 러시아 소프트웨어 엔지니어 Igor Sysoev가 개발했으며 2004년에 처음 출시되었습니다.

Nginx는 원래 C10k(초당 10,000개의 동시 연결 처리) 문제를 해결하기 위해 설계되었으므로 성능과 확장성이 뛰어납니다. Apache와 같은 기존 웹 서버와 비교하여 Nginx는 비동기식, 비차단 이벤트 중심 모델을 사용하여 동시 요청을 처리하므로 부하가 높은 조건에서 많은 수의 요청을 보다 효율적으로 처리합니다.

역방향 프록시 및 웹 서버 역할 외에도 Nginx는 로드 밸런서, 캐시 서버, HTTP/HTTPS 프로토콜 변환기 등으로도 사용할 수 있습니다. 여러 운영 체제를 지원하며 동작을 사용자 정의할 수 있는 강력하고 유연한 구성 언어를 갖추고 있습니다.

Nginx 전달 구성
기본 문제: http://abc.test.com/ai/1.jpg는 이미지 리소스이므로 https 환경에서 해당 경로에 접근하면 오류가 보고되고 https 접근이 지원되지 않습니다.

이는 다음 단계에 따라 구성할 수 있습니다.

일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/default.conf에 있는 Nginx 구성 파일을 엽니다.

/ai 접두사가 붙은 요청을 처리하려면 http 블록에 새 위치 블록을 추가합니다. 예는 다음과 같습니다:

http {     # 기타 관련 설정...     server {         listening 80;         server_name example.com; # 도메인 이름         위치로 교체 /ai {             Proxy_pass http://ai.test.com; # 지정된 백엔드로 요청을 프록시 http Server         Proxy_set_header             호스트             $         호스트     ;             Proxy_set_header _ _ : https://abc.test.com/ai/1.jpg), Nginx는 프록시를 통해 이러한 요청을 http://ai.test.com으로 전달합니다.














Nginx 구성이 올바른지 확인하십시오. sudo nginx -t

구성을 적용하려면 Nginx 서비스를 다시 로드하거나 다시 시작하세요. sudo service nginx reload 또는 sudo systemctl reload nginx

위 구성을 완료한 후 Nginx는 접두사 /ai가 있는 모든 URL 요청을 http://ai.test.com으로 전달합니다.
 

추천

출처blog.csdn.net/beautifull001/article/details/133387885