Installer des certificats génériques à partir de Lets Encrypt dans Nginx sur Ubuntu 19.04

En mars 2018, Let's Encrypt a ajouté la prise en charge des certificats génériques. Les certificats génériques vous permettent de sécuriser tous les sous-domaines de premier niveau d'un domaine avec un seul certificat. Les certificats génériques ne peuvent être obtenus que via ACMEv2, qui est une version mise à jour du protocole ACME. Pour utiliser ACMEv2 pour des certificats génériques ou non génériques, vous aurez besoin d'un client qui a été mis à jour pour prendre en charge ACMEv2. Un tel client est acme.sh, qui est un client de protocole ACME / ACMEv2 écrit purement en langage Shell (shell Unix) sans aucune dépendance. De plus, les domaines génériques doivent être validés à l'aide du type de défi DNS-01. Cela implique que vous devez modifier les enregistrements DNS TXT pour prouver le contrôle d'un domaine afin d'obtenir un certificat générique.

Dans ce guide, nous expliquons comment obtenir et déployer des certificats génériques gratuits à partir de Let's Encrypt sur Ubuntu 19.04 en utilisant le acme.shclient, l' outil Lexicon pour la manipulation automatique des enregistrements DNS en utilisant l'API Vultr et en déployant des certificats sur le serveur Web Nginx.

Exigences

  • Serveur cloud Ubuntu 19.04 Vultr fraîchement déployé.
  • Vous avez un nom de domaine enregistré. Ce guide utilise example.comcomme exemple de domaine.
  • Assurez-vous d'avoir défini des enregistrements DNS A / AAAA et CNAME pour votre nom de domaine complet (FQDN). Vous pouvez consulter le didacticiel Introduction à Vultr DNS si vous devez vous familiariser avec les concepts DNS.
  • Vultr API Access activé dans le panneau de configuration de votre compte Vultr.

Avant que tu commences

Vérifiez la version d'Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Créez un nouveau compte utilisateur avec sudoaccès et votre nom d'utilisateur préféré et passez-y. Nous utilisons johndoe.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

REMARQUE : remplacez johndoepar votre nom d'utilisateur.

Configurez le fuseau horaire.

sudo dpkg-reconfigure tzdata

Assurez-vous que votre système Ubuntu est à jour.

sudo apt update && sudo apt upgrade -y

Installez les packages nécessaires.

sudo apt install -y git wget curl socat

Installer Nginx

Installez le serveur Web Nginx.

sudo apt install -y nginx

Vérifiez la version.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Installer Python et Lexicon

Comme première étape du processus d'obtention de certificats génériques de Let's Encrypt à l'aide d'acme.sh et de l'API Vultr, vous devez installer Python et Lexicon . Lexicon est un package Python qui fournit un moyen de manipuler les enregistrements DNS sur plusieurs fournisseurs DNS de manière standardisée.

Installez Python s'il n'est pas déjà installé sur votre système.

sudo apt install -y python3

Confirmez l'installation en vérifiant la version.

python3 --version
# Python 3.7.3

Installez l'outil Lexicon. Un lexique est un outil Python qui vous permet de manipuler des enregistrements DNS sur divers fournisseurs DNS de manière standardisée.

sudo apt install -y lexicon

Vérifiez la version Lexicon.

lexicon --version
# lexicon 3.0.8

Installer le acme.shclient

Acme.shest un client de protocole ACME écrit uniquement en langage Shell (shell Unix) qui automatise le processus d'obtention d'un certificat signé via Let's Encrypt. Il prend en charge ACME v1 et ACME v2 et, surtout, il prend en charge les certificats génériques ACME v2. Dans cette section, nous installons un script Acme.sh.

REMARQUE: Il est recommandé d'utiliser l' rootutilisateur pour l'installation acme.sh, bien qu'il ne nécessite pas root/ d' sudoaccès.

Passez à l' rootutilisateur de l'utilisateur normal si vous l'avez créé.

sudo su - root

Téléchargez et installez acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "your_email@example.com"
source ~/.bashrc
cd

Vérifiez la version.

acme.sh --version
# v2.8.2

Obtenez des certificats génériques de Let's Encrypt

Pour obtenir un certificat générique, nous ne pouvons utiliser que la méthode de validation DNS. Nous utilisons Lexicon et Vultr DNS API pour manipuler les enregistrements DNS TXT.

Obtenez des certificats génériques RSA et ECC pour votre domaine.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="your_vultr_email@example.com"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

REMARQUE : n'oubliez pas de remplacer example.compar votre nom de domaine et de remplacer les valeurs d'espace réservé de l'API Vultr par les vôtres.

Après avoir exécuté les commandes précédentes, vos certificats et clés sont dans:

  • Pour RSA: ~/.acme.sh/example.comrépertoire.
  • Pour ECC / ECDSA: ~/.acme.sh/example.com_eccrépertoire.

REMARQUE : vous ne devez pas utiliser les fichiers cert dans le ~/.acme.sh/dossier, ils sont à usage interne uniquement, la structure du répertoire peut changer à l'avenir.

Pour répertorier vos certificats, vous pouvez exécuter:

acme.sh --list

Créez un dossier pour stocker vos certificats en production. Nous utilisons le /etc/letsencryptrépertoire.

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installez / copiez des certificats pour une utilisation en production sur votre serveur.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

Maintenant que nous avons obtenu avec succès des certificats génériques de Let's Encrypt, nous devons configurer le serveur Web Nginx. Tous les certificats sont renouvelés automatiquement tous les 60 jours.

Après avoir obtenu et installé des certificats à votre emplacement préféré, vous pouvez vous déconnecter d'un rootutilisateur à un sudoutilisateur normal et continuer à gérer votre serveur en utilisant sudosi nécessaire.

exit

Configurer le serveur Web Nginx

Exécutez sudo vim /etc/nginx/sites-available/example.com.confet remplissez le fichier avec le contenu suivant. Remplacez toutes les occurrences de example.compar votre propre nom de domaine.

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com *.example.com;
  root /var/www/example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

}

Activez la nouvelle example.com.confconfiguration en liant le fichier au sites-enabledrépertoire.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Testez la configuration Nginx.

sudo nginx -t

Recharger Nginx.

sudo systemctl reload nginx.service

C'est tout. Nous avons déployé des certificats génériques sur Nginx, en utilisant acme.sh, Lexicon et Vultr API. Les certificats génériques peuvent être utiles lorsque vous souhaitez sécuriser plusieurs sous-domaines de premier niveau générés dynamiquement.

Laisser un commentaire

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.