Bonjour,
J'ai découvert il y a peu, lego, qui est un client acme (protocole utilisé par letsencrypt).
Celui ci est beaucoup plus simple que le client officiel, mais également plus léger.
Développé en GO, un seul exécutable est nécessaire, et il est déjà précompilé pour toute plateforme.
Github :
https://github.com/xenolf/lego
Release :
https://github.com/xenolf/lego/releases
L'installation est simple (exemple pour linux) :
$ wget https://github.com/xenolf/lego/releases/download/v0.3.1/lego_linux_amd64.tar.xz -O /tmp/lego.tar.xz
$ cd /tmp && tar xJvf lego.tar.xz && cp lego/lego /usr/bin/lego
$ chmod +x /usr/bin/lego
L'utilisation est vraiment simple également et ce rapproche du client officiel :
NAME:
lego - Let's Encrypt client written in Go
USAGE:
lego [global options] command [command options] [arguments...]
VERSION:
0.3.0
COMMANDS:
run Register an account, then create and install a certificate
revoke Revoke a certificate
renew Renew a certificate
dnshelp Shows additional help for the --dns global option
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--domains, -d [--domains option --domains option] Add domains to the process
--server, -s "https://acme-v01.api.letsencrypt.org/directory" CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client.
--email, -m Email used for registration and recovery contact.
--accept-tos, -a By setting this flag to true you indicate that you accept the current Let's Encrypt terms of service.
--key-type, -k "rsa2048" Key type to use for private keys. Supported: rsa2048, rsa4096, rsa8192, ec256, ec384
--path "${CWD}/.lego" Directory to use for storing the data
--exclude, -x [--exclude option --exclude option] Explicitly disallow solvers by name from being used. Solvers: "http-01", "tls-sni-01".
--webroot Set the webroot folder to use for HTTP based challenges to write directly in a file in .well-known/acme-challenge
--http Set the port and interface to use for HTTP based challenges to listen on. Supported: interface:port or :port
--tls Set the port and interface to use for TLS based challenges to listen on. Supported: interface:port or :port
--dns Solve a DNS challenge using the specified provider. Disables all other challenges. Run 'lego dnshelp' for help on usage.
--help, -h show help
--version, -v print the version
Donc en gros pour générer un certificat ecdsa :
lego -a -m xataz@mondomaine.fr -s https://acme-v01.api.letsencrypt.org/directory -d mondomaine.fr -k ec384 --path /opt/ssl/ run
Ici je viens de générer un certificat ecdsa de 384bits qui se trouvera sous /opt/ssl/certificates/.
Seul défaut, c'est qu'il ne crée pas le cert et le chain, mais seulement un fullchain. Il suffira de le séparer en deux.
Voili voilou, testé hier soir sur un domaine, ça marche super bien, et c'est plus rapide que le client officiel de letsencrypt.
++