Come Richiedere un LetsEncrypt Certificato Utilizzando Acme

0
277

LetsEncrypt cambiato il certificato SSL mondo quando la sua offerta di libero, di breve durata, certificati SSL, ha permesso una grande quantità di individui e le aziende a proteggere le proprie applicazioni web, senza alcun costo. Con questo servizio, la necessaria infrastruttura avrebbe bisogno di esistere, e, a tal fine, una pletora di applicazioni nate e che si adattano alla SSL-emissione esigenze.

Uno dei più comuni programmi di utilità è quella di CertBot, che può funzionare bene, ma un’altra applicazione open-source che è disponibile è acme.sh. Questo è interamente basata su shell ACME (il protocollo utilizzato da LetsEncrypt per il rilascio di certificati SSL) del client. Con un sacco di funzionalità avanzate built-in, questo client permette di configurazioni complesse.

L’Installazione Di Acme.sh

Il modo più semplice per installare [acme.sh](<http://acme.sh>) è il seguente, che scarica ed esegue lo script da qui, https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh.

curl <https://get.acme.sh> | sh

La fonte per quel sito si trova qui, se vuoi verificare che lo script fa

L’installazione scaricare e spostare il file ~/.acme.sh e installare un alias nel file ~/.bashrc. Inoltre, un cron job verrà installato, se disponibile.

Primi Passi

Un sacco di come si utilizza [acme.sh](<http://acme.sh> dipende dal metodo di applicazione che si richiede il certificato per. Acme.sh offre diversi metodi per in realtà la richiesta di un certificato, come:

  • Webroot modalità
  • Modalità Standalone
  • Autonomo tls-alpn modalità
  • Apache modalità
  • Nginx modalità
  • DNS modalità
  • DNS alias modalità
  • Modalità Stateless

In questo articolo, ho intenzione di dimostrare in due modi diversi, la richiesta di un certificato. Io sono tra web server configurazioni sia Apache e NGINX, che utilizza la Webroot metodo. Il DNS modalità di metodo utilizza un file di configurazione per creare un record CNAME che vengono utilizzati per verificare il dominio, invece di creare un file nel file system.

La Configurazione Del Server Web

NGINX LetsEncrypt Configurazione

NGINX rende facile per creare una configurazione condivisa da usare quando si utilizza il webroot metodo di richiesta di un certificato.

letsencrypt.conf

Si consiglia di creare una configurazione autonoma che può essere incluso, se necessario, nel vhost configurazioni, in questo modo: include /etc/nginx/letsencrypt.conf

# Regola per legittima ACME Sfida richieste (come /.noto/acme-sfida/xxxxxxxxx)
# Usiamo ^~ qui, in modo che noi non controlla le altre espressioni regolari (per velocizzare). Abbiamo effettivamente NECESSARIO annullare
# altre espressioni regolari controlli, perché nel nostro altre config file sono regex regola che nega l’accesso al file con il costellata di nomi.
posizione ^~ /.noto/acme-sfida/ {
# Impostare il giusto tipo di contenuto. In base a questo:
# <https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29>
# Specifiche di corrente richiede “text/plain” o nessun contenuto di intestazione a tutti.
# Sembra che “text/plain” è una scelta sicura.
default_type “text/plain”;
}

# Accesso diretto restituisce un 404
posizione = /.noto/acme-sfida/ {
ritorno 404;
}

Apache

Molto come NGINX, Apache è possibile creare un file di configurazione separato. Un esempio di questa configurazione è mostrata di seguito.

/etc/apache2/conf-disponibili/letsencrypt.conf

In questo caso, la configurazione di Apache è specifico per l’host virtuale a causa della necessità di includere la posizione del disco. La seguente è una posizione comune, ma può essere diversa a seconda della specifica configurazione.

Alias /.noto/acme-sfida/ “/var/www/html/.noto/acme-sfida/”
<Directory “/var/www/html/”>
AllowOverride None
Opzioni MultiViews Indici SymLinksIfOwnerMatch IncludesNoExec
Richiedono un metodo di OTTENERE OPZIONI del POST
</Directory>

Configurazione DNS

In questo articolo, sto dimostrando il DNS utilizzando la modalità di Cloudflare, offre estremamente rapido modifiche DNS e funziona particolarmente bene con questo metodo.

Acme.sh utilizza due variabili ambientali per la dns_cf metodo: CF_Key e CF_Email. Per includere questo nel vostro ambiente all’avvio, è possibile includere questa config all’interno del vostro .bashrc.

Potrebbe non essere immediatamente evidente, ma c’è un precedente di spazio prima di ogni comando di esportazione, che generalmente garantisce che non saranno leggere nella storia, nel caso in cui.

esportazione CF_Key=”#########…”
esportazione CF_Email=”cfaccount@email.com”

Emissione del Certificato di via Webroot Metodo

Quando il comando riportato di seguito, due aree sono definite in un unico certificato. Questo per fare in modo che quando hostname è richiesto (e spesso reindirizzato alla canonica), la richiesta saranno protetti da una connessione sicura.

acme.sh –problema -d example.com -d www.example.com -w /var/www/html

I certificati emessi sono in /.acme.sh/acme.sh/{nome_dominio}

Emissione Certificato tramite il Metodo DNS

Quando si utilizza il DNS-emissione di metodo, una temporanea txt record viene creato tramite le API di Cloudflare, e LetsEncrypt verifica dominio utilizzando temporanea record. Questo è un pulitore di metodo, in quanto non webroot configurazione è necessaria.

# Più Domini
acme.sh –problema –dns dns_cf -d example.com -d www.example.com

I certificati emessi sono in /.acme.sh/acme.sh/{nome_dominio}

Il Rinnovo Del Certificato Di

Per impostazione predefinita, Acme.sh, creare un cronjob come la seguente voce:

48 0 * * * “/home/user/.acme.sh/acme.sh” –cron-casa “/home/user/.acme.sh” > /dev/null

A forza di rinnovamento, è possibile eseguire il comando seguente, che utilizzerà lo stesso metodo di rilascio, così come originariamente utilizzato:

acme.sh –rinnovare -d example.com -d www.example.com

Rimozione Di Certificati

Se non hai più voglia di rinnovare un certificato, e ‘ molto facile da rimuovere. Questo non consente di rimuovere il certificato dal disco, però. Per fare questo, è necessario passare a ~/.acme.sh/ e rimuovere la directory contenente i certificati.

acme.sh –remove -d example.com -d www.example.com

Questa non permettono di pulire i certificati che sono impostati per il rinnovamento, che si può controllare elencando i certificati in questo modo:

acme.sh –elenco

Conclusione

LetsEncrypt offre un ottimo e facile da usare il servizio per la fornitura di certificati SSL per l’utilizzo in siti web. La creazione di un sito web sicuro è più facile che mai, e utilizzando il acme.sh cliente, significa che si ha il controllo completo su come questo si verifica sul vostro web server.

Con un certo numero di metodi diversi per ottenere un certificato, anche molto sicuro metodi, come ad esempio un dominio delegato, permette di recuperare correttamente i certificati necessari.