Les réponses de Pasi Matalamäki et Lesbaa sont les plus correctes. Je vais expliquer pourquoi et parler des concepts.
Oui, il se peut que vous puissiez démarrer chrome dans un mode qui ignore les erreurs de certificat de votre site en développement - même si vous pouvez le faire aujourd'hui, je parie que cela changera à l'avenir. Par conséquent, je ne choisirais pas cette voie en 2021.
Le nœud du problème est que les navigateurs ont la tâche très difficile de mettre le pouvoir des PWA et des fournisseurs de services entre les mains des développeurs, tout en gardant ces choses à l'écart des pirates en chapeau noir - ou du moins en rendant pratiquement impossible pour quelqu'un de mettre en place une PWA malveillante à laquelle tous les navigateurs feront confiance et qu'ils laisseront fonctionner.
Lorsque vous envisagez le problème sous cet angle, la bonne solution apparaît clairement. Vous avez besoin d'un environnement de développement dans lequel votre PWA est servie avec un certificat auquel votre navigateur fait confiance.
Permettez-moi de dire qu'en tant que développeur et professionnel de l'infrastructure depuis des décennies, cette question m'a également laissé perplexe. Mais ça n'aurait pas dû.
Je vois beaucoup de commentaires disant que vous ne devriez pas avoir besoin d'une IP publique et d'un certificat SSL pour faire du développement web de base. Je suis d'accord. Mais pour être juste, développer une PWA et des travailleurs de service n'est pas un développement web de base -- c'est un développement web puissant qui doit être sécurisé, comme je l'ai dit plus tôt.
En outre, vous n'avez pas besoin d'une adresse IP publique ni d'acheter un certificat, que ce soit pour le développeur isolé ou pour l'atelier de développement d'une entreprise.
Dans tous les cas, vous devez obtenir un certificat généré par une autorité de certification à laquelle votre navigateur fait confiance. Dans le contexte du réseau interne d'une entreprise et du développement d'applications internes, il est fort probable que vos équipes d'infrastructure disposent déjà d'une autorité de certification à laquelle tous les PC internes de l'entreprise font confiance, ce qui vous permettra d'obtenir un verrouillage complet dans votre navigateur. Il vous suffit de trouver le moyen d'obtenir un certificat qu'elles ont généré, et c'est CE certificat que vous utiliserez avec votre serveur http ou tout autre moyen de diffusion.
Dans le contexte du développeur qui n'est pas dans une société, il suffit de créer sa propre AC, puis d'utiliser cette AC pour générer un certificat. Voici l'un des nombreux guides sur la façon de procéder : https://www.ibm.com/docs/en/runbook-automation?topic=certificate-generate-Root-ca-key
Cependant, il y a une chose importante que vous devez faire ensuite : vous devez installer cette AC dans votre système d'exploitation afin que celui-ci la considère comme une AC tierce de confiance. Comment faire cela sous Windows et MacOS : https://smallbusiness.chron.com/make-computer-trust-certificate-authority-57649.html
Sous Linux, voici un bon fil de discussion sur la façon de faire cela sur une saveur populaire : https://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu
Notez que vous n'êtes peut-être pas obligé de le faire, mais j'ai également installé le certificat que j'ai généré avec l'AC sur mon ou mes hôtes. Ce n'est probablement pas nécessaire.
Il se peut que vous rencontriez des problèmes parce que l'outil que vous utilisez pour générer des CA/CRT sort dans un format différent de celui attendu par votre système d'exploitation. Si vous constatez que c'est votre cas, il existe de nombreux articles qui peuvent vous indiquer comment transformer les certificats en différents formats.
Certains lecteurs se demandent peut-être "mais comment faire pour que cela fonctionne pour toute mon équipe, etc. La réponse est que vous ne pouvez pas vraiment le faire. Sauf si votre équipe est sur un réseau d'entreprise avec tous les PC gérés et déjà configurés pour faire confiance à une autorité de certification d'entreprise, etc. Donc, encore une fois, si c'est votre cas d'utilisation, trouvez l'équipe d'infrastructure qui possède les services SSL internes et discutez-en.
Bien que cela puisse sembler être une corvée de devoir passer par tout cela, pensez à nouveau au danger que cela représenterait si vous parveniez à faire en sorte que d'autres PC fassent confiance à votre certificat.
La bonne nouvelle est que, lorsque le développement est terminé et qu'il est temps de déployer, vous disposez d'une IP publique et d'un certificat lié à cette IP, etc. Il ne s'agit donc que d'un problème lié à l'environnement de développement.
Eh bien, je suppose que non dans le cas où votre application se trouve sur un réseau d'entreprise et n'est accessible qu'en interne. Dans ce cas, il suffit d'obtenir un certificat de production auprès de la même équipe d'infrastructure.
0 votes
@Tom Ce sont des systèmes de test internes, il n'y a pas de budget pour en acheter des valides.
4 votes
Acheter ? Si ce n'est pas un joker, vous pouvez utiliser let's encrypt gratuitement : letsencrypt.org
10 votes
Si c'est juste pour tester, vous pouvez démarrer le navigateur avec un drapeau pour utiliser http : chrome --unsafely-treat-insecure-origin-as-secure
5 votes
@psimyn merci, c'est utile. Existe-t-il un équivalent pour les tests sur les appareils mobiles ?
0 votes
Pas à ma connaissance - vous pouvez désactiver pour localhost ce qui pourrait fonctionner dans un émulateur. Sinon, prenez la route des certificats gratuits
0 votes
Vous pouvez également utiliser une autorité de certification SSL/TLS gratuite telle que letsencrypt.org . Il fait de votre site web un https valide. Le processus se fait automatiquement à l'aide d'un programme python appelé Certbot .
0 votes
@Majid merci, mais LetsEncrypt a déjà été mentionné et ces serveurs sont Windows/IIS - Certbot n'aide pas.
0 votes
@Keith Oh désolé, vous avez raison ! !! LetsEncrypt est déjà mentionné :-D Même si c'est peut-être trop tard, les réponses à cette question peuvent être trouvées. Question StackOverflow peut aider les autres !
7 votes
De plus, LetsEncrypt n'est pas bon pour les systèmes internes qui ne sont pas accessibles depuis Internet.
0 votes
@Tom Oui, achetez. Let's Encrypt nécessite un nom de domaine entièrement qualifié, et non un nom dans un domaine privé de premier niveau, et l'enregistrement d'un nom de domaine entièrement qualifié est une dépense récurrente.
1 votes
Vous ne devriez pas avoir besoin d'une IP publique, d'un FQDN et d'un certificat SSL pour faire du développement web de base.