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.com
e*.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