Genera certificati HTTPS tramite acme.sh.

Cos'è acme.sh?

acme.sh è uno script Shell open source utilizzato per automatizzare la generazione e la gestione dei certificati HTTPS.

Installare

curl https://get.acme.sh | sh -s [email protected]

Dopo l'installazione, acme.sh apparirà nella tua home directory.

~/.acme.sh

Esegui il comando seguente per rendere effettive le variabili di ambiente di acme.sh.

source ~/.basrc

Generare certificati

Prima di generare il certificato, acme.sh deve verificare la tua proprietà del nome di dominio. Esistono diverse modalità di verifica come segue:

Verifica HTTP

Apache

Se stai utilizzando un server Apache.

acme.sh --issue -d mydomain.com --apache

Server Nginx

Se stai utilizzando un server nginx.

acme.sh --issue -d mydomain.com --nginx

Aggiungi il file alla directory principale del sito web.

Puoi anche indicare ad acme.sh la directory principale del tuo sito web e acme.sh aggiungerà automaticamente un file per la verifica.

acme.sh --issue -d mydomain.com --webroot /path-to-the-webroot-of-the-site

Verifica DNS

Aggiungi record manualmente

Esegui il comando

acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

Poi, acme.sh genererà il record di analisi corrispondente e lo visualizzerà. Devi solo aggiungere questo record TXT nel pannello di gestione del tuo dominio.

Quindi rigenera il certificato

acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

Verificare tramite l'API del provider di servizi DNS.

Questa dovrebbe essere la modalità di verifica più comunemente utilizzata e consigliata. Prendendo CloudFlare come esempio, fare riferimento ahttps://github.com/acmesh-official/acme.sh/wiki/dnsapi per richiedere certificati di altri fornitori di servizi.

Richiedi l'API.

Puoi ottenere la tua chiave API globale dalla pagina del tuo profilo Cloudflare, sotto ilSezione dei token API. Fai clic su "Visualizza" accanto alla chiave API globale, verifica la tua password Cloudflare e ti verrà rivelata. È una stringa esadecimale di 32 caratteri che devi fornire ad acme.sh impostando la variabile d'ambienteCF_Key al suo valore. È inoltre necessario impostareCF_Email all'indirizzo email associato al tuo account Cloudflare; questo è l'indirizzo email che inserisci quando accedi a Cloudflare. Per esempio:

export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="[email protected]"

Genera certificato.

acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'

Visualizza file di certificato

Dopo aver generato il certificato, puoi accedere a ~/.acme.sh/mydomain.com_ecc per visualizzare i file del certificato.fullchain.cerè il file del certificato emydomain.io.key è il file della chiave privata. Entrambi sono file di testo che possono essere caricati su i18n.so durante il processo di configurazione del sito.

Problemi comuni durante l'utilizzo di acme.sh

CA

acme.sh ora utilizza ZeroSSL come CA per impostazione predefinita, ma spesso riscontra problemi di accessibilità. È possibile utilizzare il comando seguente per passare la CA a Let's Encrypt.

acme.sh --set-default-ca --server letsencrypt

Genera certificato di dominio con caratteri jolly.

Supponendo che tu voglia richiedere un certificato che sia applicabile aexample.come*.example.com, è possibile utilizzare il comando seguente per generare un certificato di dominio con caratteri jolly.

acme.sh -d example.com -d *.example.com

Rinnovo del certificato

Dopo che acme.sh ha generato il certificato, aggiungerà un'attività pianificata crontab per aggiornare periodicamente il certificato. È possibile utilizzare il comando seguente per visualizzare l'attività pianificata e anche il contenuto aggiornato viene salvato in~/.acme.sh/mydomain.com_ecc.

crontab -e