2017-10-10 12 views
0

Dans Chrome 60, ils ont ajouté une fonctionnalité qui désactive crypto.subtle pour les connexions non-TLS. Notre produit doit exécuter un serveur local et transmettre des connexions à distance sécurisées à localhost pour des raisons de sécurité. Parce que localhost n'est pas techniquement un domaine nommé, nous ne pouvons pas utiliser TLS - rendant effectivement crypto.subtle inutilisable dans Chrome (et les navigateurs à base de chrome comme Opera), et nous obligeant à utiliser un shim moins sécurisé comme asmCrypto.js. Est-il possible de dire à Chrome d'activer crypto.subtle à travers les en-têtes? Est-il possible de désactiver la nouvelle fonctionnalité dans les paramètres que nous pouvons dire aux utilisateurs (pire des cas)?Comment activer crypto.subtle pour des origines non sécurisées dans Chrome?

Répondre

1

Dans Chrome 60, ils ont ajouté une fonctionnalité qui désactive crypto.subtle pour les connexions non-TLS

Pas exactement, crypto.subtle est désactivé pour les origines non sécurisées depuis la première version prise en charge (chrome 32?)

Mais localhost est considéré comme une origine sûre https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

« origines sécurisées » sont des origines qui correspondent à le ast un des formats suivants (schéma, hôte, port):

  • (https, *, *)

  • (WSS, *, *)

  • (*, localhost, *)

  • (*, 127/8, *)

  • (*, :: 1/128, *)

  • (fichier, *, -)

  • (chrome-extension, *, -)

Alors vous devriez pouvoir utiliser Web Cryptographi sur Apihttp://localhost.

Utilisez-vous HTTPS pour votre site? Il se peut que vous ayez rencontré un problème lié au mélange de HTTPS et de HTTP. Chrome bloquera la connexion HTTP à localhost. Ensuite, vous pouvez générer un certificat auto-signé pour 127.0.0.1 et lancer votre serveur local avec HTTPS (similaire à @SLaks answer mais vous n'aurez pas besoin d'une entrée hosts)

+0

En fait, nous ne pouvons même pas utiliser localhost pour une autre raison (ne me souviens pas pourquoi), mais 127.0.0.1 corrige ce problème et est identique (?) à localhost pour que cela fonctionne. –

0

Vous devez créer une entrée CNAME ou hosts pointant un domaine valide à 127.0.0.1, puis obtenir un certificat (peut-être auto-signé) pour ce domaine.