Si vous souhaitez tester les techniciens de service sur une machine cliente qui ne peut pas exécuter un serveur Web sur l'hôte local, la technique générale est la suivante:
- Donnez à votre serveur un nom d'hôte.
- Donnez à ce nom d'hôte un certificat.
- Faites en sorte que les adresses IP approuvent l'autorité de certification qui a émis ce certificat.
Mais c'est plus facile à dire qu'à faire. Dans une AMA de novembre 2016 sur Reddit, un représentant de Let's Encrypt a reconnu que HTTPS sur un réseau local privé "est une question vraiment difficile, et je pense que personne n'a encore trouvé de réponse satisfaisante".
Les méthodes courantes pour attribuer un nom d'hôte à votre ordinateur consistent à lui donner une adresse IP interne stable, et non une adresse qui change quotidiennement ou à chaque fois que vous redémarrez votre appliance de passerelle Internet. Vous devrez configurer le serveur DHCP sur votre réseau, généralement celui de votre passerelle, pour mettre en place une "réservation" qui associe une adresse privée particulière (généralement dans 10/8
ou 192.168/16
) à l'adresse MAC de la carte Ethernet de votre poste de développement. Pour cela, lisez le manuel de votre passerelle.
Maintenant que votre poste de travail de développement a une adresse IP stable, il y a un compromis temps / argent. Si vous souhaitez apprendre l'utilisation avancée du DNS et d'OpenSSL et installer un certificat racine sur tous les appareils avec lesquels vous prévoyez de tester:
- Exécutez un serveur DNS interne sur votre réseau. Cela peut être sur votre passerelle ou sur votre poste de travail de développement.
- Configurez votre serveur DNS pour qu'il fasse autorité pour certains TLD inventés et récursif pour d'autres TLD.
- Donnez un nom stable à l'adresse IP privée de votre poste de travail de développement. Cela lui donne un nom interne.
- Configurez votre serveur DHCP pour donner l'adresse de ce serveur DNS aux autres appareils obtenant des baux.
- Sur votre poste de travail de développement, utilisez OpenSSL pour générer des paires de clés pour une autorité de certification privée et le serveur Web.
- À l'aide d'OpenSSL, émettez un certificat racine pour l'autorité de certification et un certificat pour le nom interne du serveur Web.
- Configurez HTTPS dans le serveur Web de votre poste de travail de développement à l'aide de ce certificat.
- Installez le certificat racine de l'autorité de certification en tant que certificat racine approuvé sur tous les appareils.
- Sur tous les appareils, accédez à ce nom interne.
Si vous ne pouvez pas ajouter un certificat racine ou contrôler le DNS local, par exemple si vous prévoyez de tester avec des appareils appartenant à d'autres (BYOD) ou avec des navigateurs plus verrouillés qui ne permettent pas aux utilisateurs d'ajouter des certificats racine de confiance, tels que ceux des principaux consoles de jeux vidéo, vous aurez besoin d'un nom de domaine complet (FQDN):
- Achetez un domaine auprès d'un registraire qui propose un DNS avec une API . Cela peut être directement dans un TLD ou depuis l'un des fournisseurs DNS dynamiques qui l'ont fait sur la liste publique des suffixes. (Les fournisseurs DNS dynamiques non PSL sont inacceptables en raison des limites de débit imposées par Let's Encrypt .)
- Dans le fichier de zone de ce domaine, pointez un
A
enregistrement sur l'adresse IP privée de votre poste de travail de développement. Cela donne à votre poste de travail de développement un FQDN.
- Utilisez Dehydrated , un client ACME qui prend en charge le
dns-01
défi, pour obtenir un certificat pour ce FQDN auprès de l'autorité de certification Let's Encrypt.
- Configurez HTTPS dans le serveur Web de votre poste de travail de développement à l'aide de ce certificat.
- Sur tous les appareils, accédez à ce nom.