Projet

Général

Profil

LetsEncrypt » Historique » Version 10

« Précédent - Version 10/11 (diff) - Suivant » - Version actuelle
Matthieu Herrb, 04/04/2017 15:30


LetsEncrypt

Liens

Configuration avec acme-client

https://kristaps.bsd.lv/acme-client/ client C orienté sécu développé par Kristaps Dzonsons

installation sur jessie

Dépendances: * libbsd (apt-get install libbsd-dev) * libressl

 $ git clone https://github.com/libressl-portable/portable.git libressl
 $ cd libressl
 $ ./autogen.sh
 $ ./configure --prefix=/usr/local
 $ make
 $ sudo make install
 

acme-client:

 $ git clone https://github.com/kristapsdz/acme-client-portable
 $ cd acme-client-portable

Appliquer ce patch pour que l'exécutable trouve libressl dans /usr/local:

diff --git a/GNUmakefile b/GNUmakefile
index 9b0ed80..3c89b4f 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -43,7 +43,7 @@ CFLAGS        += -DMUSL_LIBC
 endif

 CFLAGS += -I/usr/local/include/libressl
-LDFLAGS += -L/usr/local/lib
+LDFLAGS += -L/usr/local/lib -Wl,-rpath /usr/local/lib
 OBJS   += util-portable.o

 # Do we have libseccomp installed?

Puis continuer:

$ make
$ sudo make install

Utilisation

Exemple: certificat pour mastodon.tetaneutral.net avec nginx

Config nginx

# apt-get install nginx

À la mode Debian:

  1. /etc/nginx/sites-available/default:
    Ajouter, pour le bootstrap du challenge sur le port 80:
           location ^~ /.well-known/acme-challenge {
                    default_type "text/plain";
                    root /var/www/acme;
            }
      
  2. /etc/nginx/sites/available/mastodon.conf:
    Préparer la config HTTPS (utilisée lors du renouvellement):
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
    
    server {
           listen 443 ssl;
           listen [::]:443 ssl;
           server_name mastodon.tetaneutral.net;
    
           ssl_certificate     /etc/ssl/mastodon.tetaneutral.net/fullchain.pem;
           ssl_certificate_key /etc/ssl/mastodon.tetaneutral.net/private/privkey.pem;
    
           ....
    
           location ^~ /.well-known/acme-challenge {
                    default_type "text/plain";
                    root /var/www/acme;
            }
            ....                                                         
    }
    

Preparatifs

  1. récupérer un fichier /etc/ssl/cert.pem pour libressl
      # cd /etc/ssl
      # wget https://raw.githubusercontent.com/openbsd/src/master/lib/libcrypto/cert.pem
      
  2. créer les dossiers
     # mkdir -p /etc/acme /etc/ssl/mastodon.tetaneutral.net/private /var/www/acme/.well-known/acme-challenge
     # chmod 700 /etc/acme /etc/ssl/mastodon.tetaneutral/private
    
  3. faire la demande initiale
    acme-client \
            -C /var/www/acme/.well-known/acme-challenge \
            -c /etc/ssl/mastodon.tetaneutral.net \
            -k /etc/ssl/matodon.tetaneutral.net/private/privkey.pem \
            -f /etc/acme/privkey.pem \
            mastodon.tetaneutral.net
    

Et hop on peut activer le vhost https

# cd /etc/nginx/sites-enabled
# ln -s /etc/nginx/sites/available/mastodon.conf
# systemctl reload nginx

Renouvellement auto

crontab:

26 2 * * * /usr/local/bin/acme-client -C /var/www/acme/.well-known/acme-challenge/ -c /etc/ssl/mastodon.tetaneutral.net -k /etc/ssl/mastodon.tetaneutral.net/private/privkey.pem  mastodon.tetaneutral.net && systemctl reload nginx