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 "[email protected]"
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="[email protected]"
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.



Leave a Comment

Comment installer Blacklistd sur FreeBSD 11.1

Comment installer Blacklistd sur FreeBSD 11.1

Introduction Tout service connecté à Internet est une cible potentielle dattaques par force brute ou daccès injustifié. Il existe des outils comme fail2ba

Comment activer TLS 1.3 dans Apache sur Fedora 30

Comment activer TLS 1.3 dans Apache sur Fedora 30

Vous utilisez un système différent? TLS 1.3 est une version du protocole TLS (Transport Layer Security) qui a été publiée en 2018 en tant que norme proposée dans la RFC 8446

Configurer un Chroot sur Debian

Configurer un Chroot sur Debian

Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu

Comment installer ModSecurity pour Nginx sur CentOS 7, Debian 8 et Ubuntu 16.04

Comment installer ModSecurity pour Nginx sur CentOS 7, Debian 8 et Ubuntu 16.04

ModSecurity est un module de pare-feu dapplications Web open source (WAF) qui est idéal pour protéger Apache, Nginx et IIS contre diverses cyberattaques qui ciblent

Sécuriser MongoDB

Sécuriser MongoDB

MongoDB nest pas sécurisé par défaut. Si vous installez MongoDB et le lancez sans le configurer pour lauthentification, vous allez avoir un mauvais moment

Configurer le pare-feu simple (UFW) sur Ubuntu 14.04

Configurer le pare-feu simple (UFW) sur Ubuntu 14.04

La sécurité est cruciale lorsque vous exécutez votre propre serveur. Vous voulez vous assurer que seuls les utilisateurs autorisés peuvent accéder à votre serveur, à votre configuration et à vos services. je

Comment installer rkhunter sur Ubuntu

Comment installer rkhunter sur Ubuntu

Rkhunter est un logiciel qui trouve des rootkits sur un serveur Linux. Les rootkits sont installés par des pirates afin quils puissent toujours accéder au serveur. Dans ce document, vous b

Comment activer TLS 1.3 dans Nginx sur FreeBSD 12

Comment activer TLS 1.3 dans Nginx sur FreeBSD 12

Vous utilisez un système différent? TLS 1.3 est une version du protocole TLS (Transport Layer Security) qui a été publiée en 2018 en tant que norme proposée dans la RFC 8446

Activer mod_evasive sur Apache

Activer mod_evasive sur Apache

Mod_evasive est un module pour Apache qui prend automatiquement des mesures lorsquune attaque HTTP DoS ou une attaque par force brute est détectée. Mod_evasive peut enregistrer un

Configurer NGINX avec ModSecurity sur CentOS 6

Configurer NGINX avec ModSecurity sur CentOS 6

Dans cet article, je vais vous expliquer comment construire une pile LEMP protégée par ModSecurity. ModSecurity est un pare-feu dapplications Web open source qui est utile pour

Sécurisation de NGINX contre lattaque de Logjam sur CentOS

Sécurisation de NGINX contre lattaque de Logjam sur CentOS

Eh bien, il existe une autre vulnérabilité SSL dans la nature. Techniquement, ce nest pas vraiment une vulnérabilité, cest juste un trou à lintérieur du protocole que nous utilisons o

Travailler avec des capacités Linux

Travailler avec des capacités Linux

Introduction Les capacités Linux sont des attributs spéciaux du noyau Linux qui accordent aux processus et aux exécutables binaires des privilèges spécifiques qui sont normall

Comment désactiver SELinux sur CentOS 7

Comment désactiver SELinux sur CentOS 7

SELinux, une abréviation de Security-Enhanced Linux, est une amélioration de la sécurité du système dexploitation Linux. Cest un système détiquetage qui bloque de nombreux systèmes

Utiliser Lets Encrypt sur OpenBSD 6.1

Utiliser Lets Encrypt sur OpenBSD 6.1

Personne na plus besoin de créer ses propres certificats SSL car vous pouvez désormais obtenir votre propre certificat SSL gratuit et valide auprès de Let

Permet de chiffrer: migration à partir de TLS-SNI-01

Permet de chiffrer: migration à partir de TLS-SNI-01

Lets Encrypt est un service gratuit qui génère des certificats pour sécuriser votre site Web. Il prend en charge la génération de différents types de certificats, y compris

Port Knocking sur Debian

Port Knocking sur Debian

Vous utilisez un système différent? À présent, vous avez probablement changé votre port SSH par défaut. Pourtant, les pirates peuvent facilement analyser les plages de ports pour découvrir ce port - mais avec

Utilisation de votre clé SSH pour vous connecter à des utilisateurs non root

Utilisation de votre clé SSH pour vous connecter à des utilisateurs non root

Vultr fournit une fonctionnalité qui vous permet de pré-installer les clés SSH lors de la création dune nouvelle instance. Cela vous permet daccéder à lutilisateur racine des serveurs, cependant, e

Comment configurer lauthentification à deux facteurs (2FA) pour SSH sur CentOS 6 à laide de Google Authenticator

Comment configurer lauthentification à deux facteurs (2FA) pour SSH sur CentOS 6 à laide de Google Authenticator

Après avoir changé votre port SSH, configuré le détournement de port et effectué dautres ajustements pour la sécurité SSH, il existe peut-être un autre moyen de vous protéger

Comment changer le port SSH sur CoreOS

Comment changer le port SSH sur CoreOS

La modification de votre port SSH peut aider à prévenir les problèmes de sécurité. Dans ce guide, vous apprendrez comment modifier le port SSH sur CoreOS. Étape 1: modification du port SSH

Comment installer permet de chiffrer SSL sur CentOS 7 exécutant le serveur Web Apache

Comment installer permet de chiffrer SSL sur CentOS 7 exécutant le serveur Web Apache

Introduction Dans ce didacticiel, vous apprendrez la procédure dinstallation du certificat TLS / SSL sur le serveur Web Apache. Une fois terminé, tous les traf

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.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.