Outils pour utilisateurs

Outils du site


informatique:acme.sh

Acme.sh

Cas pratique pour un certificat avec un wildcard et donc par la méthode DNS.

Installation

On installe acme.sh :

$ sudo apt install socat
 
$ curl https://get.acme.sh | sh

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   705    0   705    0     0   2439      0 --:--:-- --:--:-- --:--:--  2447
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  186k  100  186k    0     0  1513k      0 --:--:-- --:--:-- --:--:-- 1500k
[jeudi 12 septembre 2019, 19:39:53 (UTC+0000)] Installing from online archive.
[jeudi 12 septembre 2019, 19:39:53 (UTC+0000)] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[jeudi 12 septembre 2019, 19:39:54 (UTC+0000)] Extracting master.tar.gz
[jeudi 12 septembre 2019, 19:39:54 (UTC+0000)] Installing to /home/simon/.acme.sh
[jeudi 12 septembre 2019, 19:39:54 (UTC+0000)] Installed to /home/simon/.acme.sh/acme.sh
[jeudi 12 septembre 2019, 19:39:55 (UTC+0000)] Installing alias to '/home/simon/.bashrc'
[jeudi 12 septembre 2019, 19:39:55 (UTC+0000)] OK, Close and reopen your terminal to start using acme.sh
[jeudi 12 septembre 2019, 19:39:55 (UTC+0000)] Installing cron job
no crontab for simon
no crontab for simon
[jeudi 12 septembre 2019, 19:39:55 (UTC+0000)] Good, bash is found, so change the shebang to use bash as preferred.
[jeudi 12 septembre 2019, 19:39:57 (UTC+0000)] OK
[jeudi 12 septembre 2019, 19:39:57 (UTC+0000)] Install success!
simon@Quercus:~$ source ~/.bashrc

Utilisation avec les DNS d'OVH

On se rend chez OVH pour créer une application : https://eu.api.ovh.com/createApp/ On récupère la “clé” et le “secret”, qu'on met dans des variables d'environnement. On lance ensuite la commande pour générer le certificat :

$ export OVH_AK="bgl2XXXXXXXXXX"
 
$ export OVH_AS="4xNTBXXXXXXXXXXXXXXX"
 
$ acme.sh --issue -d artanux.be -d '*.artanux.be' --dns dns_ovh --keylength ec-384

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

[jeudi 12 septembre 2019, 19:43:13 (UTC+0000)] Multi domain='DNS:artanux.be,DNS:*.artanux.be'
[jeudi 12 septembre 2019, 19:43:13 (UTC+0000)] Getting domain auth token for each domain
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Getting webroot for domain='artanux.be'
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Getting webroot for domain='*.artanux.be'
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Adding txt value: Nj7HF3ggJ1XXXXXXXXXXXXXXXXXXXXXXXXXXXXX for domain:  _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Using OVH endpoint: ovh-eu
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] OVH consumer key is empty, Let's get one:
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Please open this link to do authentication: https://eu.api.ovh.com/auth/?credentialToken=3IYjH0eGcoevXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[jeudi 12 septembre 2019, 19:43:16 (UTC+0000)] Here is a guide for you: https://github.com/Neilpang/acme.sh/wiki/How-to-use-OVH-domain-api
[jeudi 12 septembre 2019, 19:43:17 (UTC+0000)] Please retry after the authentication is done.
[jeudi 12 septembre 2019, 19:43:17 (UTC+0000)] Error add txt for domain:_acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:43:17 (UTC+0000)] Please add '--debug' or '--log' to check more details.
[jeudi 12 septembre 2019, 19:43:17 (UTC+0000)] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh

On se rend sur le lien donné par la commande pour valider la demande : https://eu.api.ovh.com/auth/?credentialToken=3IYjH0eGcoevXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

$ acme.sh --issue -d artanux.be -d '*.artanux.be' --dns dns_ovh --keylength ec-384

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

[jeudi 12 septembre 2019, 19:44:08 (UTC+0000)] Multi domain='DNS:artanux.be,DNS:*.artanux.be'
[jeudi 12 septembre 2019, 19:44:08 (UTC+0000)] Getting domain auth token for each domain
[jeudi 12 septembre 2019, 19:44:10 (UTC+0000)] Getting webroot for domain='artanux.be'
[jeudi 12 septembre 2019, 19:44:10 (UTC+0000)] Getting webroot for domain='*.artanux.be'
[jeudi 12 septembre 2019, 19:44:11 (UTC+0000)] Adding txt value: Yt-kUDCrhXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX for domain:  _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:44:11 (UTC+0000)] Using OVH endpoint: ovh-eu
[jeudi 12 septembre 2019, 19:44:11 (UTC+0000)] Checking authentication
[jeudi 12 septembre 2019, 19:44:11 (UTC+0000)] Consumer key is ok.
[jeudi 12 septembre 2019, 19:44:12 (UTC+0000)] Adding record
[jeudi 12 septembre 2019, 19:44:13 (UTC+0000)] Added, sleep 10 seconds.
[jeudi 12 septembre 2019, 19:44:25 (UTC+0000)] The txt record is added: Success.
[jeudi 12 septembre 2019, 19:44:25 (UTC+0000)] Adding txt value: EXnn3CW2CXXXXXXXXXXXXXXXXXXXXXXX for domain:  _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:44:25 (UTC+0000)] Using OVH endpoint: ovh-eu
[jeudi 12 septembre 2019, 19:44:25 (UTC+0000)] Checking authentication
[jeudi 12 septembre 2019, 19:44:25 (UTC+0000)] Consumer key is ok.
[jeudi 12 septembre 2019, 19:44:26 (UTC+0000)] Adding record
[jeudi 12 septembre 2019, 19:44:28 (UTC+0000)] Added, sleep 10 seconds.
[jeudi 12 septembre 2019, 19:44:39 (UTC+0000)] The txt record is added: Success.
[jeudi 12 septembre 2019, 19:44:39 (UTC+0000)] Let's check each dns records now. Sleep 20 seconds first.
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] Checking artanux.be for _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] Domain artanux.be '_acme-challenge.artanux.be' success.
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] Checking artanux.be for _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] Domain artanux.be '_acme-challenge.artanux.be' success.
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] All success, let's return
[jeudi 12 septembre 2019, 19:45:01 (UTC+0000)] Verifying: artanux.be
[jeudi 12 septembre 2019, 19:45:05 (UTC+0000)] Success
[jeudi 12 septembre 2019, 19:45:05 (UTC+0000)] Verifying: *.artanux.be
[jeudi 12 septembre 2019, 19:45:08 (UTC+0000)] Success
[jeudi 12 septembre 2019, 19:45:08 (UTC+0000)] Removing DNS records.
[jeudi 12 septembre 2019, 19:45:08 (UTC+0000)] Removing txt: Yt-kUDCrhXXXXXXXXXXXXXXXXXXXXXXXXX for domain: _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:45:09 (UTC+0000)] Using OVH endpoint: ovh-eu
[jeudi 12 septembre 2019, 19:45:09 (UTC+0000)] Checking authentication
[jeudi 12 septembre 2019, 19:45:10 (UTC+0000)] Consumer key is ok.
[jeudi 12 septembre 2019, 19:45:12 (UTC+0000)] Removed: Success
[jeudi 12 septembre 2019, 19:45:12 (UTC+0000)] Removing txt: EXnn3CWXXXXXXXXXXXXXXXXXXXXXXXXXX for domain: _acme-challenge.artanux.be
[jeudi 12 septembre 2019, 19:45:13 (UTC+0000)] Using OVH endpoint: ovh-eu
[jeudi 12 septembre 2019, 19:45:13 (UTC+0000)] Checking authentication
[jeudi 12 septembre 2019, 19:45:13 (UTC+0000)] Consumer key is ok.
[jeudi 12 septembre 2019, 19:45:16 (UTC+0000)] Removed: Success
[jeudi 12 septembre 2019, 19:45:16 (UTC+0000)] Verify finished, start to sign.
[jeudi 12 septembre 2019, 19:45:16 (UTC+0000)] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/6583XXXXXXXXXXXXXXXX
[jeudi 12 septembre 2019, 19:45:18 (UTC+0000)] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/034XXXXXXXXXXXX
[jeudi 12 septembre 2019, 19:45:19 (UTC+0000)] Cert success.
-----BEGIN CERTIFICATE-----
MIIErTC...
-----END CERTIFICATE-----
[jeudi 12 septembre 2019, 19:45:19 (UTC+0000)] Your cert is in  /home/simon/.acme.sh/artanux.be_ecc/artanux.be.cer 
[jeudi 12 septembre 2019, 19:45:19 (UTC+0000)] Your cert key is in  /home/simon/.acme.sh/artanux.be_ecc/artanux.be.key 
[jeudi 12 septembre 2019, 19:45:19 (UTC+0000)] The intermediate CA cert is in  /home/simon/.acme.sh/artanux.be_ecc/ca.cer 
[jeudi 12 septembre 2019, 19:45:19 (UTC+0000)] And the full chain certs is there:  /home/simon/.acme.sh/artanux.be_ecc/fullchain.cer 

Et on “installe” les certificats :

$ sudo mkdir /etc/ssl/artanux.be
 
$ sudo chown -R simon:simon /etc/ssl/artanux.be/

Pour permettre à l'utilisateur courant de relancer le service nginx :

$ sudo visudo
(...)
%simon  ALL= NOPASSWD: /bin/systemctl start nginx
%simon  ALL= NOPASSWD: /bin/systemctl stop nginx
%simon  ALL= NOPASSWD: /bin/systemctl restart nginx
%simon  ALL= NOPASSWD: /bin/systemctl reload nginx
(...)

Maintenant on peut “installer” les certificats dans le dossier voulu où nginx ira les chercher :

$ acme.sh --install-cert -d artanux.be --ecc --keypath /etc/ssl/artanux.be/privkey.pem --fullchainpath /etc/ssl/artanux.be/fullchain.pem --reloadcmd "sudo systemctl reload nginx"

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

[lundi 7 octobre 2019, 20:45:41 (UTC+0000)] Installing key to:/etc/ssl/artanux.be/privkey.pem
[lundi 7 octobre 2019, 20:45:41 (UTC+0000)] Installing full chain to:/etc/ssl/artanux.be/fullchain.pem
[lundi 7 octobre 2019, 20:45:41 (UTC+0000)] Run reload cmd: sudo systemctl reload nginx
[lundi 7 octobre 2019, 20:45:42 (UTC+0000)] Reload success

Upgrade acme.sh

# acme.sh --upgrade

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

[samedi 15 février 2020, 14:21:45 (UTC+0100)] Installing from online archive.
[samedi 15 février 2020, 14:21:45 (UTC+0100)] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[samedi 15 février 2020, 14:21:47 (UTC+0100)] Extracting master.tar.gz
[samedi 15 février 2020, 14:21:47 (UTC+0100)] Installing to /root/.acme.sh
[samedi 15 février 2020, 14:21:47 (UTC+0100)] Installed to /root/.acme.sh/acme.sh
[samedi 15 février 2020, 14:21:47 (UTC+0100)] Good, bash is found, so change the shebang to use bash as preferred.
[samedi 15 février 2020, 14:21:50 (UTC+0100)] OK
[samedi 15 février 2020, 14:21:50 (UTC+0100)] Install success!
[samedi 15 février 2020, 14:21:50 (UTC+0100)] Upgrade success!

Activer l'upgrade automatique :

# acme.sh --upgrade --auto-upgrade

Sources

informatique/acme.sh.txt · Dernière modification: 2020/08/09 13:03 (modification externe)