Nginx local ssl

This commit is contained in:
Alejandro Sarmiento
2024-03-05 23:04:51 +01:00
parent 798a8214a7
commit 774b27278d
7 changed files with 97 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<h1>HOLA CARA COLA</h1>
</body>
</html>

4
NginxLocalSSL/readme.md Normal file
View File

@@ -0,0 +1,4 @@
Local Nginx with SSL
continue in ./ssl/howTo.txt

View File

@@ -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