2017-10-10 4 views
0

Chrome 60에서는기능을 추가하여은 TLS가 아닌 연결에 대해 crypto.subtle을 사용 중지합니다. 보안상의 이유로 로컬 서버를 실행하고 안전한 원격 연결을 localhost으로 전달해야합니다. localhost은 기술적으로 이름이 지정된 도메인이 아니기 때문에 TLS를 사용할 수 없으므로 crypto.subtle을 Chrome (및 Opera와 같은 크롬 기반 브라우저)에서 사용할 수 없게 만들고 asmCrypto.js과 같은 덜 안전한 심을 사용해야합니다. 헤더를 통해 crypto.subtle을 사용하도록 Chrome에 알리는 방법이 있습니까? 사용자에게 알릴 수있는 설정 (최악의 시나리오)에서 새로운 기능을 비활성화하는 방법이 있습니까?Chrome에서 보안되지 않은 출처에 대해 cryptotle을 사용 설정하는 방법은 무엇인가요?

답변

1

크롬 60, 그들은 비 TLS 연결

정확하지 않게, crypto.subtle 처음 지원되는 버전 이후 비보안 기원 비활성화됩니다

에 대한 crypto.subtle 비활성화 기능 추가 (크롬 32?)

그러나 localhost이 보안 원산지 https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

간주된다 "보안 기원은"르에서 일치 기원은 다음 (스키마, 호스트, 포트) 패턴 중 하나 AST :

  • (HTTPS, *, *)

  • (WSS, *, *)

  • (*, 로컬 호스트, *)

  • (*, 127/8, *)

  • (* : 1/128 *)

  • (파일, *, -)

  • (크롬 확장, *, -)

그래서 당신은 http://localhost에 웹 Cryptographi API를 사용할 수 있어야합니다.

사이트에 HTTPS를 사용하고 있습니까? HTTPS와 HTTP를 혼합하는 것과 관련된 문제가있을 수 있습니다. Chrome은 localhost에 대한 HTTP 연결을 차단합니다. 그러면 127.0.0.1에 대한 자체 서명 인증서를 생성하고 HTTPS를 사용하여 로컬 서버를 시작할 수 있습니다 (@SLaks 대답과 유사하지만 hosts 항목 필요 없음)

+0

실제로 다른 이유로 인해 localhost를 사용할 수 없습니다 (이유는 기억하지 못한다). 그러나 127.0.0.1은 그 문제를 해결하고 localhost와 동일하다 (?). –

0

127.0.0.1에 유효한 도메인을 가리키는 CNAME 또는 hosts 항목을 만든 다음 해당 도메인에 대한 (아마도 자체 서명 된) 인증서를 가져와야합니다.

관련 문제