Configuración de SSL para puerto personalizado en nginx - letsencrypt

Configuración de SSL para puerto personalizado en nginx - letsencrypt

Estoy intentando habilitar SSL en un puerto personalizado(no 443), ejecutando una página web. Al buscar, no pude encontrar mucha información que ayudara.

El servidor tiene puertos que no se pueden cambiar, externo: 26143, interno: 80.

Para ingresar al servidor (sin SSL), escribiría ejemplo.com:26143 y el sistema lo vería como una conexión al puerto 80.

¿Cómo configuraría un certificado (permite cifrar) para habilitar SSL en este puerto?


Según las pruebas, parece que haga lo que haga, solo accede al servidor en el puerto 80, incluso si lo configuro en 26143.

aquí está la configuración habilitada para sitios nginx:

server {
    listen 80;
    listen [::]:80;

    root /root/html;

    index index.php;
    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
    
        # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known {
        root /var/www/ssl/example.com/;
    }
}

Los comandos que he probado son:

certbot --nginx -d example.com:26143
certbot certonly --standalone --preferred-challanges http -d example.com:26143
certbot certonly --standalone --preferred-challenges http -d example.com
certbot certonly --standalone --preferred-challenges http --http-01-port 26143 -d example.com
certbot certonly --nginx --preferred-challenges http --http-01-port 26143 -d example.com
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com:26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --http-01-port 26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --preferred-challenges http --http-01-port 26143 -m [email protected] --webroot -w /root/html

Algunos ajustes y el cuarto error más común que obtuve fue este:

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: example.com
   Type:   unauthorized
   Detail: Invalid response from
   https://example.com/.well-known/acme-challenge/ho73up1dR3KU4V37awccOw2T5xsSILWUM365ZnwVEN4
   [159.81.xxx.xxx]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
   2.0//EN\">\n<html><head>\n<title>404 Not
   Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

El 404 esNode mi sistema, es de example.com:80, en lugar de example.com:26143. Además, no tengo acceso para modificar los registros DNS.


En mi experiencia, lets encrypt y SSL han sido un poco confusos y, junto con los límites de velocidad, no puedo solucionar los problemas lo suficiente como para entenderlo.

Sé que debería ser posible, pero no sé cómo ni qué estoy haciendo mal.

Cualquier ayuda sería apreciada

Respuesta1

Ciframos los desafíos http-01 que requieren el puerto 80 para intercambiar datos de validación. El servidor https nunca se utiliza. El puerto 80 es un requisito estricto. Si esa no es una opción, entonces DNS es la única otra forma.

Hay servidores de prueba que debe usar hasta que tenga la configuración correcta (menos límite de velocidad, o tal vez incluso sin límite), primero luego cambie a los servidores de producción.

Pregunta similar:https://community.letsencrypt.org/t/port-4434-instead-of-443/61349

información relacionada