웹사이트

HTTPS를 활성화한 후 혼합 콘텐츠 경고 수정하기

When SSL is active but the browser padlock is missing, broken or showing a warning, the cause is almost always mixed content: the page itself is encrypted but something on it is still being fetched…

SSL이 활성화되었지만 브라우저 자물쇠가 없거나, 손상되었거나, 경고가 표시되는 경우 그 원인은 거의 항상 혼합 콘텐츠입니다. 페이지 자체는 암호화되어 있지만 페이지의 일부가 여전히 순수 HTTP를 통해 가져오고 있습니다. 이 가이드는 이것이 발생하는 이유, 모든 문제가 있는 리소스를 찾는 방법, 그리고 이를 제대로 수정하는 방법을 설명합니다.

혼합 콘텐츠란 무엇인가

브라우저는 페이지와 로드하는 모든 것이 HTTPS를 통해 전달된 경우에만 페이지를 안전한 것으로 취급합니다. HTTPS 페이지가 http:// 주소에서 이미지, 스크립트, 스타일시트, 글꼴 또는 iframe을 가져오면 브라우저가 이를 표시합니다.

브라우저는 이를 두 가지 범주로 나누며, 동작이 매우 다릅니다.

  • 활성 혼합 콘텐츠: 스크립트, 스타일시트, iframe 및 XHR입니다. 브라우저는 이들을 완전히 차단합니다. 레이아웃이 무너지고, 슬라이더가 중지되고, 양식 제출이 중지됩니다. 이것이 파괴적인 종류입니다.
  • 수동 혼합 콘텐츠: 이미지, 오디오 및 비디오입니다. 이들은 보통 계속 로드되지만 자물쇠가 저하되거나 제거됩니다.

따라서 사이트가 완벽하게 보이면서도 자물쇠를 잃거나, 페이지 자체에 명백한 오류가 없으면서 깨져 보일 수 있습니다.

SSL 활성화 후 이것이 발생하는 이유

SSL을 켜면 사이트가 제공되는 방식이 변경됩니다. 그 안에 저장된 것은 변경하지 않습니다.

WordPress는 절대 URL을 데이터베이스에 작성하므로, 어느 정도 시간 동안 HTTP에서 실행된 사이트는 다음에 저장된 http:// 주소를 가지고 있습니다:

  • 편집기를 통해 삽입된 모든 이미지를 포함한 게시물 및 페이지 콘텐츠입니다.
  • 미디어 첨부 파일 레코드입니다.
  • 테마 커스터마이저 설정 및 테마 옵션입니다.
  • 위젯 콘텐츠 및 블록 설정입니다.
  • 플러그인 설정, 특히 페이지 빌더 및 슬라이더 플러그인입니다.
  • siteurlhome 옵션입니다.

이 중 어느 것도 자동으로 업데이트되지 않습니다. SSL을 활성화한 후 자물쇠가 손상된 이유를 궁금해하는 것은 가장 일반적인 지원 질문 중 하나이며, 이것이 그 이유입니다.

단계 1: 서버에서 HTTPS 강제 적용

데이터베이스를 건드리기 전에 모든 방문자가 먼저 HTTPS에 도착하는지 확인하세요.

  1. KPanel에 로그인하고 왼쪽 사이드바에서 Websites를 클릭합니다.
  2. 사이트를 클릭합니다.
  3. Settings를 엽니다.
  4. Behavior에서 Force HTTPS를 켭니다.
  5. Save Changes를 클릭합니다.

KPanel의 사이트에 있는 Force HTTPS 설정

모든 HTTP 요청은 이제 사이트가 실행되기 전에 서버에서 HTTPS로 리디렉션됩니다.

Force HTTPS는 들어오는 요청을 처리합니다. 데이터베이스 내에 이미 저장된 URL을 다시 작성하지 않으므로, 그 자체로는 하드코딩된 http:// 이미지로 인한 혼합 콘텐츠 경고를 지우지 않습니다. 이것과 단계 2 모두 필요합니다.

SSL이 아직 활성화되지 않았거나 인증서가 잘못된 경우 SSL Certificates로 시작하세요.

단계 2: 저장된 URL 다시 작성

이것이 혼합 콘텐츠를 실제로 해결하는 수정입니다.

  1. 사이트를 열고 WordPress 탭을 열고 Quick Actions 섹션을 엽니다.
  2. Search & Replace 카드를 찾고 Configure를 클릭합니다.
  3. **Find (old value)**에 http://yourdomain.co.nz을 입력합니다.
  4. Replace withhttps://yourdomain.co.nz을 입력합니다.
  5. **Dry run (preview only, no changes)**을 선택한 상태로 유지하고 Preview를 클릭합니다.
  6. 개수와 테이블별 분석을 검토합니다.
  7. Dry run 선택을 해제하고 Run을 클릭한 후 확인합니다.

전체 백업이 대체 전에 자동으로 생성되며, 플러그인에서 생성한 테이블을 포함한 모든 테이블이 포함됩니다. 직렬화된 플러그인 설정이 올바르게 처리됩니다.

phpMyAdmin에서 SQL 쿼리로 이를 수행하지 마세요. WordPress는 플러그인 및 테마 설정을 직렬화된 문자열로 저장하며, 각 값의 길이를 기록하므로 원본 REPLACE()은 이를 깨뜨리고 설정이 조용히 비어있는 상태로 재설정됩니다. 백업을 복원하는 것 외에는 복구할 방법이 없습니다. 전체 설명은 Running a Search and Replace에 있습니다.

요금제에 콘솔이 포함되어 있으면 동등한 명령은 다음과 같습니다:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

--dry-run를 삭제하여 적용하고, 먼저 직접 백업을 하세요. 콘솔은 하지 않습니다.

단계 3: 모든 캐시 지우기

페이지의 캐시된 복사본은 데이터베이스가 수정된 후에도 오랫동안 이전 HTTP URL을 계속 제공하며, 이것이 사람들이 대체가 작동하지 않았다고 생각하는 이유입니다.

  1. WordPress, 그 다음 Quick Actions, 그 다음 Flush Cache입니다.
  2. 전체 페이지 캐시가 켜져 있으면 WordPress, 그 다음 Caching, 그 다음 Purge cache입니다.
  3. CDN이 켜져 있으면 Performance, 그 다음 Kapsule CDN, 그 다음 Purge입니다. Purging the CDN Cache를 참고하세요.
  4. 캐싱 플러그인, 자신의 설정 화면에서입니다.
  5. 자신의 브라우저입니다. 개인 창에서 테스트하세요. 그래야 자신의 캐시로 속지 않습니다.

단계 4: 남은 것 찾기

대부분의 사이트는 단계 2 후에 깨끗합니다. 경고가 지속되면 추측하지 말고 정확한 리소스를 찾으세요.

브라우저 콘솔. F12로 개발자 도구를 열고 Console 탭으로 이동한 후 새로고침합니다. 혼합 콘텐츠는 문제가 있는 리소스의 전체 URL을 명명하는 명시적 경고로 나타납니다. 그 URL은 어느 플러그인 또는 테마가 책임이 있는지 알려줍니다.

Network 탭. http://으로 필터링하여 페이지가 만든 모든 비보안 요청을 나열합니다.

페이지 소스. 페이지를 로드하고 소스를 보고 http://을 검색합니다. xmlns 속성 및 스키마 선언 내의 모든 것을 무시하세요. 이들은 요청이 아닌 식별자입니다.

일반적인 생존자 및 각각에 대해 할 수 있는 것:

발견한 것수정
테마 커스터마이저 설정의 이미지 또는 로고커스터마이저에서 다시 업로드하거나 다시 선택하세요
입력된 http:// 이미지 URL이 있는 페이지 빌더 모듈해당 모듈을 편집하고 URL을 수정하세요
슬라이더 플러그인의 자체 설정 테이블슬라이더를 다시 저장하거나 --all-tables를 사용하여 검색 및 대체를 실행하세요
제3자 도메인의 글꼴 또는 스크립트공급자가 HTTPS를 제공하는지 확인하세요. 지금은 대부분 그렇습니다. URL을 전환하세요
이전 공급자의 추적 픽셀 또는 임베드공급자가 HTTPS를 지원하지 않으면 제거하세요. 이것은 Kapsule 문제가 아닌 손상된 종속성입니다
테마 템플릿 파일의 하드코딩된 http://템플릿을 편집하거나, 더 좋게는 https을 사용하거나 프로토콜 상대 참조를 사용하세요

정확히 하나의 페이지만 영향을 받고 사이트의 나머지는 깨끗하면, 원인은 사이트 전체 설정이 아닌 해당 페이지의 콘텐츠입니다. 편집기에서 열고 포함하는 미디어를 확인하세요.

수정 확인

  1. 개인 창에서 사이트를 로드합니다.
  2. 자물쇠가 단단해야 하며, 경고 삼각형이나 차단된 표시가 없어야 합니다.
  3. 자물쇠를 클릭합니다. 브라우저가 연결이 안전하다고 보고하며 혼합 콘텐츠 공지가 없습니다.
  4. 콘솔을 열고 다시 한 번 새로고침합니다. 혼합 콘텐츠 경고가 0개입니다.
  5. 홈페이지뿐만 아니라 깊은 페이지, 내부 페이지, 이미지가 있는 블로그 게시물, 스토어의 체크아웃을 확인하세요.

다시 돌아오는 것 방지

  • Force HTTPS를 켠 상태로 두세요. 전체 문제 클래스를 제거하는 한 줄 설정입니다.
  • 콘텐츠에 전체 http:// URL을 입력하지 마세요. 이제 HTTPS 주소를 저장하는 미디어 라이브러리를 사용하세요.
  • URL을 요청하는 모든 것을 설치한 후 플러그인 설정을 확인하세요.
  • 플러그인 업데이트 후 돌아오는 경고를 주시하세요. 일부 플러그인은 자신의 저장된 URL을 재설정합니다.
  • 마이그레이션 후 검색 및 대체를 다시 실행하세요. 가져온 데이터베이스는 이전 호스트의 URL을 함께 가져옵니다: Migrating a Website From cPanel.

문제 해결

자물쇠는 나에게는 괜찮지만 동료에게는 손상됩니다. 캐시된 페이지입니다. 개인 창에서 새로고침하도록 하세요.

대체 후 사이트가 완전히 손상되었습니다. 자동 사전 실행 백업을 복원하세요: Restoring From a Backup.

콘솔에 내 것이 아닌 도메인의 혼합 콘텐츠 경고가 표시됩니다. 제3자 리소스입니다. 자신의 서버를 수정할 수 없습니다. 어느 쪽이든 HTTPS를 지원하고 URL을 전환하거나 리소스를 삭제하세요.

모든 것이 HTTPS이지만 사이트가 전혀 로드되지 않습니다. 이것은 혼합 콘텐츠가 아닙니다. Website Not Loading로 시작하고 SSL Certificates에서 인증서를 확인하세요.

이 모든 것을 처리했는데도 경고가 지속되면, 영향을 받는 URL과 브라우저 콘솔 경고의 정확한 텍스트와 함께 support@kapsulehost.com으로 이메일을 보내세요.

여전히 도움이 필요하신가요?

다음 주소로 이메일을 보내주세요 support@kapsulehost.com 또는 KPanel에서 채팅을 시작하세요.

KPanel 열기
HTTPS를 활성화한 후 혼합 콘텐츠 경고 수정하기