Si desea probar los trabajadores del servicio en un dispositivo cliente que no puede ejecutar un servidor web en localhost, la técnica general es la siguiente:
- Dale a tu servidor un nombre de host.
- Dale un certificado a este nombre de host.
- Haga que las IP confíen en la CA que emitió este certificado.
Pero esto es más fácil decirlo que hacerlo. En una AMA de noviembre de 2016 en Reddit, un representante de Let's Encrypt reconoció que HTTPS en una LAN privada "es una pregunta realmente difícil, y creo que nadie ha encontrado una respuesta satisfactoria hasta ahora".
Las formas comunes de asignar un nombre de host a su computadora implican darle una dirección IP interna estable, no una que cambie diariamente o cada vez que apague y encienda su dispositivo de puerta de enlace a Internet. Deberá configurar el servidor DHCP en su red, generalmente el de su puerta de enlace, para configurar una "reserva" que asocie una dirección privada en particular (generalmente dentro 10/8
o192.168/16
) con la dirección MAC de la tarjeta Ethernet de su estación de trabajo de desarrollo. Para ello, lea el manual de su pasarela.
Ahora que su estación de trabajo de desarrollo tiene una dirección IP estable, existe una compensación de tiempo / dinero. Si está dispuesto a aprender el uso avanzado de DNS y OpenSSL e instalar un certificado raíz en todos los dispositivos con los que planea probar:
- Ejecute un servidor DNS interno en su red. Esto podría estar en su puerta de enlace o en su estación de trabajo de desarrollo.
- Configure su servidor DNS para que sea autorizado para algunos TLD inventados y recursivo para otros TLD.
- Dé un nombre estable a la dirección IP privada de su estación de trabajo de desarrollo. Esto le da un nombre interno.
- Configure su servidor DHCP para dar la dirección de este servidor DNS a otros dispositivos que obtengan concesiones.
- En su estación de trabajo de desarrollo, utilice OpenSSL para generar pares de claves para una autoridad de certificación privada y el servidor web.
- Con OpenSSL, emita un certificado raíz para la CA y un certificado para el nombre interno del servidor web.
- Configure HTTPS en el servidor web de su estación de trabajo de desarrollo con este certificado.
- Instale el certificado raíz de la CA como un certificado raíz confiable en todos los dispositivos.
- En todos los dispositivos, acceda a este nombre interno.
Si no puede agregar un certificado raíz o controlar el DNS local, por ejemplo, si planea probar con dispositivos que son propiedad de otros (BYOD) o con navegadores más bloqueados que no permiten a los usuarios agregar certificados raíz confiables, como los de los principales consolas de videojuegos, necesitará un nombre de dominio completo (FQDN):
- Compre un dominio de un registrador que ofrezca DNS con una API . Esto podría ser directamente dentro de un TLD o de uno de los proveedores de DNS dinámicos que se haya incluido en la lista de sufijos públicos. (Los proveedores de DNS dinámicos que no son PSL son inaceptables debido a los límites de velocidad impuestos por Let's Encrypt ).
- En el archivo de zona de este dominio, apunte un
A
registro a la dirección IP privada de su estación de trabajo de desarrollo. Esto le da a su estación de trabajo de desarrollo un FQDN.
- Utilice Dehydrated , un cliente ACME que admite el
dns-01
desafío, para obtener un certificado para este FQDN de la autoridad de certificación Let's Encrypt.
- Configure HTTPS en el servidor web de su estación de trabajo de desarrollo con este certificado.
- En todos los dispositivos, acceda a este nombre.