DEV WIKI
프론트엔드 · 오류·증상

Only secure origins are allowed

브라우저 기능이 보안 컨텍스트에서만 허용되어 HTTP 개발 주소에서 실행되지 않는 오류입니다. 현재 Origin과 window.isSecureContext를 확인하고 운영 환경은 HTTPS로 제공합니다.

빠른 답변

우선 확인할 원인
Only secure origins are allowed는 현재 문서가 보안 컨텍스트가 아니어서 Service Worker, Geolocation, 카메라·마이크 같은 제한 기능을 사용할 수 없다는 뜻입니다. 현재 Origin과 window.isSecureContext를 확인하고, 운영 주소는 HTTPS로 제공해야 합니다. Chrome의 unsafely-treat-insecure-origin-as-secure 설정은 개발 중인 특정 Origin을 임시로 시험할 때만 사용하며 사용자 해결책으로 배포하지 않습니다.
먼저 확인할 항목
브라우저 콘솔에서 `Only secure origins are allowed` 또는 보안 컨텍스트가 필요하다는 원문과 실패한 API 이름을 기록합니다. 기대 결과는 HTTPS가 필요한 기능과 별개의 JavaScript 오류를 구분하는 것입니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우문맥: 바이브 코딩
출처 확인일
2026-08-29
최종 검토
2026-08-29
수정일
2026-08-29
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • 애플리케이션 오류 메시지

먼저 확인할 항목

브라우저 콘솔에서 `Only secure origins are allowed` 또는 보안 컨텍스트가 필요하다는 원문과 실패한 API 이름을 기록합니다. 기대 결과는 HTTPS가 필요한 기능과 별개의 JavaScript 오류를 구분하는 것입니다.

콘솔에서 `location.origin`, `location.protocol`, `window.isSecureContext`를 확인합니다. 기대 결과는 현재 Origin과 브라우저의 보안 컨텍스트 판정이 함께 기록되는 것입니다.

개발 주소가 `http://localhost`·`http://127.0.0.1`인지, 일반 HTTP 호스트인지 확인합니다. 기대 결과는 로컬로 신뢰할 수 있는 주소와 HTTPS가 필요한 원격 주소를 구분하는 것입니다.

운영 주소를 HTTPS로 제공한 뒤 같은 브라우저 기능을 다시 실행합니다. 기대 결과는 `window.isSecureContext`가 `true`이고 같은 보안 컨텍스트 오류가 재현되지 않는 것입니다.

피해야 할 조치

주의

  • `chrome://flags/#unsafely-treat-insecure-origin-as-secure`와 같은 예외는 개발 테스트용입니다. 방문자에게 플래그 변경이나 브라우저 보안 기능 비활성화를 요구하지 않습니다.
  • `--ignore-certificate-errors` 또는 전체 Origin에 대한 보안 예외를 운영 해결책으로 사용하지 않습니다.
  • 플래그에 등록할 개발 Origin은 스킴·호스트·포트를 확인하고 필요한 한 개로 제한합니다. 테스트가 끝나면 예외를 제거합니다.

환경별 원인과 조치

브라우저 콘솔에 Only secure origins are allowed가 표시되면 현재 페이지가 보안 컨텍스트로 판정되지 않아 요청한 브라우저 기능이 차단된 상태입니다. unsafely treat insecure origin as secure를 먼저 설정하지 말고, 실패한 API와 현재 Origin을 확인합니다.

오류 원문이 없거나 Mixed Content와 구분해야 한다면 HTTP 개발 주소에서 브라우저 기능이 실행되지 않을 때 확인할 항목을 먼저 확인합니다.

이 문서가 맞는 조건

다음 중 하나가 확인될 때 사용합니다.

  • Service Worker, Geolocation, 알림, 카메라·마이크처럼 보안 컨텍스트가 필요한 기능을 HTTP 주소에서 실행했습니다.
  • 브라우저 콘솔에 Only secure origins are allowed 또는 보안 컨텍스트가 필요하다는 메시지가 표시됩니다.
  • window.isSecureContext 결과가 false입니다.

JavaScript 구문 오류, API 권한 거절, 인증서 경고는 같은 문제가 아닙니다. 콘솔에서 실제로 실패한 API 이름과 오류 원문을 함께 기록합니다.

현재 Origin과 판정을 확인합니다

브라우저 개발자 도구의 Console에서 다음 값을 확인합니다.

({  origin: location.origin,  protocol: location.protocol,  isSecureContext: window.isSecureContext,});
관찰 결과다음 판단
원격 주소가 http:이고 isSecureContextfalse운영 주소를 HTTPS로 제공해야 합니다.
http://localhost 또는 http://127.0.0.1브라우저가 로컬 Origin을 잠재적으로 신뢰할 수 있는 주소로 처리하는지 확인합니다.
https:인데 isSecureContextfalse상위 문서가 HTTP인 iframe인지, 인증서와 전체 문서 경로가 안전한지 확인합니다.
isSecureContexttrue보안 컨텍스트가 아닌 API 권한·구현 오류를 별도로 확인합니다.

HTTPS로 열린 iframe이라도 상위 문서가 안전하지 않으면 해당 문서가 보안 컨텍스트로 인정되지 않을 수 있습니다. iframe을 사용하는 경우 최상위 문서부터 현재 문서까지의 프로토콜을 확인합니다.

운영 환경은 HTTPS로 해결합니다

원격 운영 주소의 해결책은 브라우저 예외가 아니라 HTTPS 제공입니다.

  1. 대상 호스트 이름에 유효한 TLS 인증서를 적용합니다.
  2. HTTP 요청을 같은 호스트의 HTTPS 주소로 이동시킵니다.
  3. 페이지와 필요한 하위 자원을 HTTPS로 불러옵니다.
  4. 같은 URL에서 window.isSecureContexttrue인지 확인합니다.
  5. 실패했던 브라우저 기능을 다시 실행해 같은 오류가 사라졌는지 확인합니다.

인증서 오류가 표시되면 예외로 우회하지 말고 NET::ERR_CERT_DATE_INVALID 같은 실제 인증서 오류 원문부터 확인합니다.

unsafely-treat-insecure-origin-as-secure는 개발 테스트에만 사용합니다

Chrome은 개발자가 특정 HTTP Origin을 보안 Origin처럼 임시 취급해 기능을 시험할 수 있는 플래그와 명령행 옵션을 제공합니다. 이 설정은 인증·암호화를 추가하지 않으며 해당 HTTP 연결을 실제로 안전하게 만들지 않습니다.

사용 조건은 다음으로 제한합니다.

  • HTTPS를 아직 적용하지 않은 내부 개발 Origin에서 기능 동작만 확인해야 합니다.
  • 대상 스킴·호스트·포트를 정확히 알고 있습니다.
  • 테스트용 브라우저 프로필에서 한시적으로 사용합니다.
  • 테스트 뒤 예외를 제거하고 실제 HTTPS 환경에서 다시 검증합니다.

일반 방문자에게 Chrome 플래그를 바꾸라고 안내하거나, 여러 HTTP Origin을 한꺼번에 예외 처리하거나, 운영 배포의 완료 조건으로 사용하지 않습니다. Chrome for Developers도 이 방법을 개발자용으로 한정하고 사용자에게 사용을 지시하지 말라고 경고합니다.

수정 후 확인

  1. 변경 전후의 Origin과 window.isSecureContext 값을 기록합니다.
  2. 같은 브라우저·같은 기능에서 오류 원문이 재현되는지 확인합니다.
  3. 카메라·위치처럼 별도 사용자 권한이 필요한 기능은 보안 컨텍스트 통과와 권한 허용을 구분합니다.
  4. 테스트 플래그를 사용했다면 제거한 뒤 HTTPS 운영 주소에서 마지막으로 재검사합니다.

참고 자료

Deprecating Powerful Features on Insecure Origins (새 창에서 열림)

Chromium · 공식 자료 · 확인 범위: secure-origin-requirement, restricted-browser-features, temporary-chrome-test-flag · 확인일: 2026-08-29

Secure contexts (새 창에서 열림)

MDN Web Docs · 공식 자료 · 확인 범위: secure-context-definition, potentially-trustworthy-local-origins, window-is-secure-context-check · 확인일: 2026-08-29

Improving the service worker development experience (새 창에서 열림)

Chrome for Developers · 공식 자료 · 확인 범위: development-only-flag-warning, local-development-options · 확인일: 2026-08-29