Lassen Sie uns die Certbot-Validierung über HTTPS verschlüsseln

16

Aus den Dokumenten des Certbot-Webroot-Plugins

Das Webroot-Plugin erstellt eine temporäre Datei für jede Ihrer angeforderten Domänen in ${webroot-path}/.well-known/acme-challenge. Anschließend sendet der Validierungsserver Let's Encrypt HTTP-Anforderungen, um zu überprüfen, ob der DNS für jede angeforderte Domäne auf den Server aufgelöst wurde, auf dem certbot ausgeführt wird.

Auf einem privat genutzten Heimserver ist Port 80 deaktiviert, dh im Router ist keine Portweiterleitung aktiviert. Ich habe nicht die Absicht, diesen Hafen zu öffnen.

Wie kann ich certbot mitteilen, dass der Validierungsserver keine HTTP-Anforderung, sondern eine HTTPS-Anforderung (Port 443) senden soll, um den Besitz der Domäne zu validieren?

Der Validierungsserver sollte nicht einmal die Notwendigkeit haben, das Zertifikat des Heimservers zu validieren, da dieser standardmäßig bereits HTTP verwendet. Ich habe möglicherweise ein selbstsigniertes Zertifikat oder das Zertifikat, das erneuert werden muss, aber das sollte keine Rolle spielen.

Derzeit bin ich in der Situation, in der ich die Port-80-Weiterleitung sowie einen Server aktivieren muss, um Zertifikate zu erstellen / erneuern. Dadurch kann ich das Zertifikat nicht mit einem Cronjob erneuern. Naja, mit genug Arbeit würde es gehen, aber ich habe bereits einen Server, der 443 abhört, der auch die Arbeit erledigen könnte.

Daniel F
quelle

Antworten:

8

Wie in https://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47 berichtet, unterstützt der letsencrypt.sh- Updater die Validierung über DNS. Nur wenige Updater-Skripte scheinen dies implementiert zu haben. Die HTTP-Methode ist jedoch für die Erstkonfiguration am einfachsten zu implementieren.

Das Skript, über das Sie verfügen, kann TNS SNI oder den Nachweis des Besitzes eines früheren Schlüssels für die Verlängerung verwenden. Die Spezifikation finden Sie unter https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 . In diesem Fall muss HTTP nicht aktiviert sein.

BillThor
quelle
Danke, ich habe die DNS-basierte Überprüfung vergessen. Es war relativ schwierig, Informationen darüber zu finden, da in den Dokumenten kaum darauf hingewiesen wird. Es gibt keinen Haken für Namecheap, also werde ich versuchen, einen zu implementieren und zu überprüfen, wie es funktioniert. Ich akzeptiere die Antwort, wenn sie wie erwartet funktioniert. Es kann jedoch einige Zeit dauern, da derzeit keine Domains zur Erneuerung verfügbar sind. Andernfalls muss der Befehl --webroot in den Server geschrieben werden, damit der Server als Wrapper fungiert, der per Cronjob bearbeitet werden kann.
Daniel F
Nur überprüft, Namecheaps API ist ziemlich schlecht (überschreiben Sie ALLE Datensätze, um einen hinzuzufügen oder zu ändern), DNS ist in diesem Fall keine Option. Ich benutze auch andere Registrare, was die Sache komplizierter macht (API-Schlüsselverwaltung). Mit dem API-Schlüssel von Namecheap können Sie sogar neue Domains registrieren oder Domains übertragen. Dies ist als FK unsicher.
Daniel F
@DanielF Ich gehe davon aus, dass weder die DNS- noch die HTTP-Validierung für die Erneuerung verwendet werden. Beides ist nicht erforderlich, da Ihre Server TLS-SNI für das vorhandene Zertifikat übergeben sollten und die Anforderung mit dem vorhandenen Zertifikat signiert werden kann. Beides sollte ausreichen. DNS und HTTP sind sinnvolle Methoden für die Anmeldung. Sie sollten 30 Tage Zeit haben, um Probleme zu lösen, wenn Ihr erstes Zertifikat erneuert werden kann.
BillThor