0. Introducción
En un post anterior vimos como crear una entidad certificadora CA y a partir de esta crea los certificados "wildcard" para los servidores.
Hay que recordar que para que el cliente reconozca como válido el certificdo wildcard del servidor que se conecta se debe:
- Instalar el certificado raiz de la CA en el navegador
- Asignar la IP del servidor a un nombre de dominio compatible con el dominio wildcard. (Si nuestro dominio wildcard es "*.municipio.es" entonces cualquier nombre de dominio como pepe.municipio.es o miservidor.municipio.es son válidos)
- Para asignar la dirección IP al dominio compatible en cuestión se debe hacer en el fichero "/etc/hosts" o decirle al administrador de red que le de la entrada al servidor de dominio (DNS)de la red.
Para asignar la IP al dominio utilizando un DNS:
a. Si usamos BIND9 (DNS clásico de Linux)
1. Se añade esta entrada al fichero /etc/bind/zones/db.municipio.es, (donde el nombre de dominio viene reflejado en el nombre del fichero)
miservidor IN A 192.168.28.XXX
En este caso el dominio asignado a la IP 192.168.28.XXX sería miservidor.municipio.es
2. Asegurarnos qu esta zona esté definida en /etc/bind/named.conf.local
zone "municipio.es" { type master; file "/etc/bind/zones/db.municipio.es"; };
3. Reiniciar el servicio DNS:
sudo systemctl restart bind9
b. Si usuamos DNS en Acive Directory
Puede haver un link a la configuración del DNS en un servidor como este :
%SystemRoot%\system32\mmc.exe %SystemRoot%\system32\dnsmgmt.msc
Y aparecer una pantalla como esta:
Vamos a la zona concreta de "municipio.es"
En click derecho -> Nuevo hosst (A o AAAA)
En nombre escribimos "miservidor"
En la dirección IP 192.168.28.XXX
Guardamos y el nuevo FQDN (miservidor.municipio.es) ya apunta a la IP dada
Para probar ejecutamos uno de destos 2 comandos:
nslookup miservidor.municipio.es
dig miservidor.municipio.es
1. Configurar FastHTML (con uvicorn) para que se ejecute sobre un dominio
La pieza clave es la función __main__
if __name__ == "__main__": import uvicorn app.mount("/static", fh.StaticFiles(directory="/home/eduard/MyPython/11.softprop-01/static"), name="static") cert_path="/home/eduard/MyPython/11.softprop-01/static/certs/wildcard.municipio.es." uvicorn.run(app, host="miservidor.municipio.es", port=5001, ssl_keyfile =cert_path+"key", ssl_certfile=cert_path+"crt")
Hay que tener en cuenta que :
- "app.mount" es para poder utilizar ficheros estáticos
- En uvicorn.run(app, host="miservidor.municipio.es", port=5001, se puede cambiar el host="miservidor.municipio.es" por "192.168.28.XXX"
- Y no puede fatar las referencias a las clave y certificado de servidor
2. Buscar los ficheros de configuración de nginx afectados por el cambio anterior
-- cambiar: upstream softpropsrv { server 0.0.0.0:5001; -- por: upstream softpropsrv { server 192.168.28.XXX:5001;
-- cambiar: -- local res, err = httpc:request_uri("http://127.0.0.1:5000/auth", { -- por: local res, err = httpc:request_uri("https://edu.tavernes.es:5000/auth", {
3. Ver la ruta de los certificados de nginx.conf
server { #->listen 8001; listen 8449 ssl; #->New server_name localhost; #server_name edu.tavernes.es; #-> Begin new # SSL certificate configuration ssl_certificate /usr/local/openresty/nginx/conf/wildcard.municipio.es.crt;
ssl_certificate_key /usr/local/openresty/nginx/conf/wildcard.municipio.es.key;
# Optional SSL settings for security and performance ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; # Common proxy settings (optional) proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https;
No hay comentarios :
Publicar un comentario