Frage "Fehlgeschlagenes Autorisierungsverfahren" beim Versuch, ein SSL-Zertifikat zur Site hinzuzufügen


Wenn ich diesen Befehl in meinem digitalen Ozeanserver ausgeführt habe:

sudo certbot --authenticator webroot --webroot-path /home/james/postr --installer nginx -d <sitename>

Ich bekomme diesen Fehler:

Failed authorization procedure

The client lacks sufficient authorization :: Invalid response from 
http://www.<sitename>.com/.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-
iKjV2T6ue3H5kOcxEWpztrHc

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

   Domain: www.venvor.com
   Type:   unauthorized
   Detail: Invalid response from
   http://www.<sitename>.com/.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-
   iKjV2T6ue3H5kOcxEWpztrHc:
   "<h1>Not Found</h1><p>The requested URL
   /.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-iKjV2T6ue3H5kOcxEWpztrHc
   was not found on "

Ich habe bereits versucht, den URL-Pfad zu meiner URL-Datei hinzuzufügen:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^.well-known/acme-challenge/', admin.site.urls),
]

Es funktioniert jedoch immer noch nicht. Irgendeine Idee, was das Problem ist?

BEARBEITEN:

/etc/nginx/sites-available/postr

server {
    listen 80;
    server_name venvor.com www.venvor.com 174.138.62.249;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/james/postr;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/james/postr/draft1.sock;
    }
}

1
2018-01-16 20:45


Ursprung


Haben Sie in Ihrer Nginx-Conf-Datei einen Standortblock konfiguriert, um den Zugriff auf diese ACME-Challenge-Dateien zu ermöglichen? - Rajesh Keladimath
Nein, habe ich nicht - könntest du mir sagen, was genau ich meinem Standortblock hinzufüge? Ich habe meine aktuelle Konfigurationsdatei in meiner Bearbeitung hinzugefügt. - Zorgan


Antworten:


Fügen Sie den folgenden Standortblock zu Ihrer Nginx-Konfigurationsdatei hinzu:

location ^~ /.well-known {
root /your_path_to/document_root;
allow all;
}

Wie es funktioniert :

  • Der Verifizierungsserver von Let's Encrypt sucht nach Verifizierung Dateien, die vom Client in einem Unterverzeichnis Ihrer Docroot (.well-known) erstellt wurden. Dies bedeutet, dass diese Dateien öffentlich zugänglich sein müssen.

  • In dem obigen Positionsblock "^ ~" Modifikator stimmt der nicht-reguläre Ausdruck überein. Zum Beispiel könnte es Anfragen für /.well-known/acme-challenge/dkaslf_kfjadlksojkfds-fkdssjl verarbeiten.

  • alles erlauben Direktive gewährt den öffentlichen Zugriff auf den angegebenen Ordner.

Siehe : https://letsencrypt.org/how-it-works.


1
2018-01-17 12:23



Vielen Dank! Dies funktioniert, die Website (s) sind jetzt HTTPS. Können Sie bitte genau erklären, wie Ihr Code in der Nginx-Konfigurationsdatei funktioniert? Auch ich wählte: 2: Redirect - Make all requests redirect to secure HTTPS access - Kannst du mir sagen, was das bedeutet? - Zorgan
Ich habe meine Antwort bearbeitet. Ich hoffe es hilft. - Rajesh Keladimath
Und wenn Sie die Weiterleitungsoption auswählen, werden alle Ihre unsicheren HTTP-Anfragen jetzt an gesicherte Anfragen weitergeleitet. - Rajesh Keladimath