SSL für benutzerdefinierten Port in Nginx einrichten - letsencrypt

SSL für benutzerdefinierten Port in Nginx einrichten - letsencrypt

Ich versuche, SSL auf einem benutzerdefinierten Port zu aktivieren(nicht 443), Betreiben einer Webseite. Beim Suchen konnte ich nicht viele hilfreiche Informationen finden.

Der Server hat unveränderliche Ports, extern: 26143, intern: 80.

Um den Server aufzurufen (ohne SSL), geben Sie example.com:26143 ein und das System erkennt dies als eine Verbindung mit Port 80.

Wie richte ich ein Zertifikat (Lets Encrypt) ein, um SSL auf diesem Port zu aktivieren?


Beim Testen scheint es so, als ob, was auch immer ich tue, nur auf den Server über Port 80 zugegriffen wird, selbst wenn ich ihn auf 26143 einstelle

hier ist die Sites-enabled-Konfiguration von 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/;
    }
}

Die Befehle, die ich ausprobiert habe, sind:

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

Nach einigem Hin und Her war der häufigste Fehler, der mir auffiel, dieser:

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.

Der 404 istNichtvon meinem System ist es von example.com:80, statt von example.com:26143. Außerdem habe ich keinen Zugriff auf die Änderung der DNS-Einträge.


Meiner Erfahrung nach sind Lets Encrypt und SSL ziemlich verwirrend und in Verbindung mit den Ratenbegrenzungen bin ich nicht in der Lage, ausreichend Fehler zu beheben, um sie zu verstehen.

Ich weiß, dass es möglich sein sollte, ich weiß nur nicht wie und/oder was ich falsch mache.

Jede Hilfe wäre willkommen

Antwort1

Let's Encrypt HTTP-01-Challenges erfordern Port 80 zum Austausch von Validierungsdaten. Der HTTPS-Server wird nie verwendet. Port 80 ist eine zwingende Voraussetzung. Wenn das keine Option ist, ist DNS die einzige andere Möglichkeit.

Es gibt Testserver, die Sie verwenden sollten, bis das Setup richtig ist (geringere Ratenbegrenzung oder vielleicht sogar keine Begrenzung). Danach wechseln Sie zu den Produktionsservern.

Ähnliche Frage:https://community.letsencrypt.org/t/port-4434-instead-of-443/61349

verwandte Informationen