diff --git a/NginxLocalSSL/conf/default.conf b/NginxLocalSSL/conf/default.conf new file mode 100644 index 0000000..ed22cd9 --- /dev/null +++ b/NginxLocalSSL/conf/default.conf @@ -0,0 +1,18 @@ +server { + listen 80; + server_name yourdomain.com www.yourdomain.com; + return 301 https://$server_name$request_uri; # Redirige HTTP a HTTPS +} + +server { + listen 443 ssl; + server_name yourdomain.com www.yourdomain.com; + + ssl_certificate /etc/nginx/ssl/cert.pem; # Ruta al certificado dentro del contenedor + ssl_certificate_key /etc/nginx/ssl/localserver.key; # Ruta a la clave privada dentro del contenedor + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } +} diff --git a/NginxLocalSSL/docker-compose.yml b/NginxLocalSSL/docker-compose.yml new file mode 100644 index 0000000..c009161 --- /dev/null +++ b/NginxLocalSSL/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.8' +services: + nginx: + image: nginx:latest + container_name: nginx-local + ports: + - "16080:80" + - "16443:443" + volumes: + - ./html:/usr/share/nginx/html + - ./conf:/etc/nginx/conf.d + - ./ssl:/etc/nginx/ssl + restart: unless-stopped diff --git a/NginxLocalSSL/html/images/jpg1.jpg b/NginxLocalSSL/html/images/jpg1.jpg new file mode 100644 index 0000000..4d01b2d Binary files /dev/null and b/NginxLocalSSL/html/images/jpg1.jpg differ diff --git a/NginxLocalSSL/html/images/webp1.webp b/NginxLocalSSL/html/images/webp1.webp new file mode 100644 index 0000000..122741b Binary files /dev/null and b/NginxLocalSSL/html/images/webp1.webp differ diff --git a/NginxLocalSSL/html/index.html b/NginxLocalSSL/html/index.html new file mode 100644 index 0000000..d46b7dc --- /dev/null +++ b/NginxLocalSSL/html/index.html @@ -0,0 +1,13 @@ + + + + + + + + + +

HOLA CARA COLA

+ + + \ No newline at end of file diff --git a/NginxLocalSSL/readme.md b/NginxLocalSSL/readme.md new file mode 100644 index 0000000..ed2c529 --- /dev/null +++ b/NginxLocalSSL/readme.md @@ -0,0 +1,4 @@ +Local Nginx with SSL + + +continue in ./ssl/howTo.txt diff --git a/NginxLocalSSL/ssl/howTo.txt b/NginxLocalSSL/ssl/howTo.txt new file mode 100644 index 0000000..d99bdfe --- /dev/null +++ b/NginxLocalSSL/ssl/howTo.txt @@ -0,0 +1,49 @@ +Crear el Certificado Autofirmado + + Abrir PowerShell como Administrador: Busca PowerShell en el menú de inicio, haz clic derecho sobre él y selecciona "Ejecutar como administrador". + + Crear el Certificado: Usa el siguiente comando en PowerShell para crear un certificado autofirmado. Cambia yourdomain.com por el nombre de dominio que estés usando localmente (puede ser un dominio ficticio para propósitos de desarrollo). + + powershell + +New-SelfSignedCertificate -DnsName yourdomain.com, www.yourdomain.com -CertStoreLocation cert:\LocalMachine\My + +Anota el Thumbprint del certificado creado, lo necesitarás después. + +Exportar el Certificado: Primero, debes exportar el certificado a un archivo .pfx con una contraseña. + + Ve a Administrador de certificados (puedes buscarlo y abrirlo desde el menú de inicio). + En Certificados - Local Computer, encuentra tu certificado bajo Personal -> Certificates. + Haz clic derecho en tu certificado -> All Tasks -> Export.... + Sigue el asistente, asegúrate de marcar la opción Yes, export the private key. + Establece una contraseña para el certificado cuando se te solicite. + Guarda el archivo .pfx exportado en tu directorio deseado. + +Convertir .pfx a .crt y .key: Necesitarás OpenSSL para convertir el archivo .pfx a los formatos .crt y .key que Nginx puede usar. OpenSSL viene preinstalado en muchos sistemas operativos, pero si estás en Windows, es posible que necesites descargarlo de openssl.org. + +Abre una terminal donde tengas OpenSSL disponible y ejecuta los siguientes comandos, reemplazando mycert.pfx con la ruta de tu archivo .pfx y mypassword con la contraseña que usaste al exportar el certificado. + +bash + +openssl pkcs12 -in mycert.pfx -nocerts -out key.pem -nodes -passin pass:mypassword +openssl pkcs12 -in mycert.pfx -nokeys -out cert.pem -passin pass:mypassword + +Luego, elimina la contraseña del archivo .key: + +bash + +openssl rsa -in key.pem -out yourdomain.key + +Ahora tienes yourdomain.key (la clave privada) y cert.pem (el certificado público). + +coloca los archivos cert.pem y yourdomain.key dentro de la carpeta ssl + +ya puedes entrar por https://localhost:16443 y tendras ceretificado =) + + +si quieres modificar el archivo host de windows para acceder mediante yourdomain.com o www.yourdomain.com +añade las siguientes lineas al final del archivo host que esta en C:\Windows\System32\drivers\etc\hosts + + +::1 yourdomain.com +::1 www.yourdomain.com \ No newline at end of file