Pouvez-vous utiliser un travailleur des services avec un certificat auto-signé?
j'ai un serveur de développement qui est utilisé pour les tests. Ils ont des certificats SSL auto-signés, qui nous permettent de tester l'application web sur HTTPS, mais avec des avertissements proéminents que les certificats ne sont pas vérifiables.
c'est bien, mais j'ai un employé de Service qui jette une erreur avec le navigator.serviceWorker.register
SecurityError: N'a pas enregistré un agent de service: une erreur de certificat SSL s'est produite lors de la récupération du script.
comment utiliser un travailleur des services avec un serveur d'essai intranet qui possède un certificat auto-signé?
3 réponses
comme alternative à l'utilisation de certificats auto-signés, vous pouvez lancer Chrome ou Firefox de sorte qu'il prétend que certains domaines sont sûrs. Par exemple, en utilisant Chrome sur un Mac, vous pouvez le lancer en utilisant:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ --user-data-dir=/tmp/foo --unsafely-treat-insecure-origin-as-secure=http://www.your.site
les travailleurs des services devraient alors travailler à partir de http://www.votre.site .
plus d'informations peuvent être trouvées ici: Options pour tester le service des travailleurs via HTTP
modifier: changé --unsafety-...
en --unsafely-...
Pour le développement local, nous utilisons auto-signé certs. Résoudre les problèmes liés au développement local sur OSX. Nous avons fait ce qui suit:
- Créer votre certificat et la servir
- naviguez vers l'url https
- Ouvrir les outils de dev > sécurité > afficher le certificat
- faites glisser l'icône de certificat sur le bureau et doubleclickez dessus, cela ouvrira l'accès au porte-clés.
- faites glisser l'icône de certificat pour vous connecter, ouvrez une session et double-cliquez sur le certificat (il doit être nommé avec le domaine dev ou similaire) ouvrez la liste déroulante de confiance et sélectionnez Toujours Confiance. Retournez à votre application fermez la fenêtre et ré-ouvrez avec https, vous devriez maintenant avoir 'faux' https pour votre domaine dev.
la réponse acceptée ci-dessus n'a pas fonctionné pour moi. J'ai ajouté les erreurs --ignore-certificate-à celle suggérée par @stef52 pour cette question erreur avec l'inscription des travailleurs des services et qui a fonctionné
chrome.exe --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost/
ou pour les utilisateurs MAC
./Google\ Chrome --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost