Crittografiamo la convalida certbot su HTTPS


16

Dai documenti del plug-in webroot Certbot

Il plugin webroot funziona creando un file temporaneo per ciascuno dei domini richiesti in ${webroot-path}/.well-known/acme-challenge. Quindi il server di convalida Let's Encrypt effettua richieste HTTP per convalidare la risoluzione del DNS per ciascun dominio richiesto sul server che esegue certbot.

Su un server domestico utilizzato privatamente, la porta 80 è disabilitata, ovvero non è abilitato il port forwarding nel router. Non ho intenzione di aprire quella porta.

Come posso dire a certbot che il server di validazione non dovrebbe fare una richiesta HTTP, ma una richiesta HTTPS (porta 443), per convalidare la proprietà del dominio?

Il server di convalida non dovrebbe nemmeno avere la necessità di convalidare il certificato del server principale, poiché utilizza già HTTP per impostazione predefinita. Potrei avere un certificato autofirmato o il certificato che è in attesa di rinnovo, ma non dovrebbe importare.

Attualmente mi trovo nella situazione in cui devo abilitare il port forwarding 80 e un server per creare / rinnovare i certificati. Questo non mi consente di utilizzare un cronjob per rinnovare il certificato. Bene, con abbastanza lavoro lo farebbe, ma ho già un server in ascolto su 443, che potrebbe fare anche il lavoro.

Risposte:


8

Come riportato in https://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47 il programma di aggiornamento letsencrypt.sh supporta la convalida tramite DNS. Pochi script di aggiornamento sembrano averlo implementato. Tuttavia, il metodo HTTP è il più semplice da implementare per la configurazione iniziale.

Lo script che hai può utilizzare TNS SNI o Prova di possesso di una chiave precedente per i rinnovi. Le specifiche sono disponibili su https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 . In tal caso, non sarà necessario abilitare HTTP.


Grazie, ho dimenticato la verifica basata su DNS. È stato relativamente difficile trovare informazioni su di esso, come i documenti a malapena menzionano. Non c'è nessun gancio per Namecheap, quindi proverò a implementarne uno ora e verificherò come funziona. Accetterò la risposta se funziona come previsto, ma potrebbe richiedere del tempo poiché al momento non ci sono domini disponibili per il rinnovo. Altrimenti dovrò eseguire il comando --webroot nel server in modo che il server agisca come un wrapper che può essere sincronizzato.
Daniel F,

Appena controllato, l'API di Namecheap è piuttosto male (sovrascrivi TUTTI i record per aggiungerne o modificarne uno), in questo caso il DNS non è un'opzione. Sto anche usando altri registrar, il che rende la cosa più complicata (gestione delle chiavi API). La chiave API di Namecheap ti dà persino accesso per registrare nuovi domini o trasferire domini, questo non è sicuro come FK.
Daniel F,

@DanielF Non mi aspetto che la convalida DNS o HTTP verrà utilizzata per il rinnovo. Nessuno dei due è necessario poiché i server devono passare l'SNI TLS per il certificato esistente e la richiesta può essere firmata con il certificato esistente. O dovrebbe bastare. DNS e HTTP sono metodi ragionevoli per l'iscrizione. Dovresti avere 30 giorni per risolvere i problemi quando il tuo primo certificato è in attesa di rinnovo.
BillThor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.