Comment installer le certificat SSL, Let's Encrypt pour sécuriser Apache sur RHEL / CENTOS 7/6

Comment installer le certificat SSL, Let's Encrypt pour sécuriser Apache sur RHEL / CENTOS 7/6

Extension du dernier didacticiel Let's Encrypt concernant les certificats gratuits SSL / TLS, dans cet article, nous allons montrer comment obtenir et installer des certificats SSL / TLS gratuits délivrés par Cryptons l'autorité du certificat pour Apache serveur Web sur Centos / Rhel 7/6 et les distributions Fedora aussi.

Si vous cherchez à installer, faisons crypter pour Apache sur Debian et Ubuntu, suivez ce guide ci-dessous:

Configuration, cryptons pour sécuriser Apache sur Debian et Ubuntu

Test de l'échantillon d'environnement
L'installation permet de crypter pour Apache sur Centos et Rhel

Exigences

  1. Un nom de domaine enregistré avec valide UN Enregistrements pour pointer de l'adresse IP publique de votre serveur.
  2. Le serveur Apache installé avec le module SSL activé et l'hébergement virtuel activé au cas où vous hébergez plusieurs domaines ou sous-domaines.

Étape 1: Installez le serveur Web Apache

1. Si ce n'est pas déjà installé, le démon httpd peut être installé en émettant la commande ci-dessous:

# yum install httpd 

2. Pour que Let's Encrypt le logiciel fonctionne avec Apache, assurez-vous que le module SSL / TLS est installé en émettant la commande ci-dessous:

# yum -y installer mod_ssl 

3. Enfin, démarrez Apache Server avec la commande suivante:

# systemctl start httpd.Service [sur RHEL / CENTOS 7] # Service httpd start [sur rhel / centos 6] 

Étape 2: Installez le certificat SSL, Let's Encrypt

4. La méthode la plus simple d'installation Escryptons Le client est en clonage le référentiel GitHub dans votre système de fichiers. Pour installer GIT sur votre système, vous devez activer les référentiels EPEL avec la commande suivante.

# yum installer EPEL-Release 

5. Une fois les dépôts EPEL ajoutés dans votre système, allez-y et installez le client GIT en exécutant la commande ci-dessous:

# yum install git 

6. Maintenant, une fois que vous avez installé toutes les dépendances requises afin de traiter avec Let's Encrypt, allez à / usr / local / Répertoire et commencer à tirer le client Let's Encrypt Formez son référentiel GitHub officiel avec la commande suivante:

# cd / usr / local / # git clone https: // github.com / lesencrypt / lesencrypt 

Étape 3: Obtenez un certificat SSL Free Let's Encrypt pour Apache

7. Le processus d'obtention d'un certificat de crypte gratuit pour Apache est automatisé pour Centos / Rhel Merci au plugin Apache.

Courons Escryptons Commande de script afin d'obtenir un certificat SSL. Aller dans le répertoire d'installation de Let's Encrypt à partir de / usr / local / lesencrypt et exécuter le Letsencrypt-Autito commander en fournissant --apache option et le -d drapeau pour chaque sous-domaine dont vous avez besoin d'un certificat.

# CD / USR / LOCAL / LETSENCRYPT # ./ LETSENCRYPT-AUTO --APACHE -D YOT_DOMAIN.TLD 
Créer un certificat SSL à crypte pour Apache

8. Fournir l'adresse e-mail qui sera utilisée par Let's Encrypt pour récupérer votre touche perdue ou pour des avis urgents et appuyer sur Entrer continuer.

Ajouter une adresse e-mail pour Let nous crypte

9. Convenir les termes de la licence en appuyant sur Entrée.

Convention permet de crypter la licence

dix. Sur Centos / Rhel, Par défaut, Apache Server n'utilise pas le concept de séparation des répertoires pour les hôtes activés des hôtes disponibles (inactifs) comme Debian La distribution basée fait.

De plus, l'hébergement virtuel est désactivé par défaut. L'instruction Apache qui spécifie le nom du serveur (Nom du serveur) Il n'est pas présent sur le fichier de configuration SSL.

Pour activer cette directive, Let's Encrypt vous invitera à sélectionner un hôte virtuel. Parce qu'il ne trouve aucun VHOST disponible, sélectionnez le SSL.confli Fichier à modifier automatiquement par Let's Encrypt Client et appuyez sur Entrer continuer.

Directive VirtualHost active et sélectionnez MOD_SSL

11. Ensuite, choisissez le Facile méthode pour Http Demandes et appuyez sur Entrer aller de l'avant.

Autoriser les demandes HTTP faciles

12. Enfin, si tout s'est bien déroulé, un message de félicitations doit être affiché à l'écran. Presse Entrer Pour libérer l'invite.

Permet de crypter activé sur le domaine

C'est ça! Vous avez réussi à publier un SSL / TLS certificat pour votre domaine. Vous pouvez maintenant commencer à parcourir votre site Web en utilisant Https protocole.

Étape 4: Test Free Let's Encrypt Encryption sur le domaine

13. Afin de tester la rectitude de votre domaine SSL / TLS Handshake, visitez le lien ci-dessous et testez votre certificat sur votre domaine.

https: // www.sllabs.com / ssltest / analyser.html 
Vérifier permet de crypter le certificat sur le domaine

14. Si vous recevez une série de rapports concernant votre vulnérabilité de domaine dans les tests effectués, vous devez réparer ces trous de sécurité de toute urgence.

Une note globale de C La classe rend votre domaine très peu sûr. Pour résoudre ces problèmes de sécurité, ouvrez le fichier de configuration SSL Apache et apportez les modifications suivantes:

# vi / etc / httpd / confre.d / ssl.confli 

Rechercher la ligne avec Sslprotocol déclaration et ajouter -Sslv3 à la fin de la ligne.

Correction de la configuration d'Apache SSL

Aller plus loin dans le fichier, rechercher et commenter la ligne avec Sslciphersuite en plaçant un # devant lui et ajoutez le contenu suivant sous cette ligne:

SSLCIPHERSuite ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256 : DHE-DDSS-AES128-GCM-SHA256: KEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDA-AES128-SHA: ECDHE-RSA -AES256-SHA384: Ecdhe-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE-DSS-AES128 -SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA : AES256-SHA: AES: Camellia: DES-CBC3-Sha:!anull:!ENULL:!EXPORTER:!DES:!RC4:!MD5:!PSK:!aecdh:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!Krb5-des-cbc3-sha sslhonorciphherorder sur ssloptions + strictrequire 
Configurer la configuration SSL

15. Après avoir apporté toutes les modifications ci-dessus, enregistrez et fermez le fichier, puis redémarrez le démon Apache pour appliquer les modifications.

# SystemCTL Redémarrer HTTPD.Service [sur RHEL / CENTOS 7] # Service Httpd Restart [sur RHEL / CENTOS 6] 

16. Maintenant, teste à nouveau l'état de votre cryptage de domaine, en visitant le même lien que ci-dessus. Pour effectuer des retests, appuyez sur le lien de cache clair du site Web.

https: // www.sllabs.com / ssltest / analyser.html 
Test permet de crypter le certificat SSL sur le site Web

Maintenant tu devrais avoir un cours UN Note globale, ce qui signifie que votre domaine est très sécurisé.

Étape 4: Auto Renew Let’s Crypt Certificats sur Apache

17. Cette version bêta du logiciel Let's Encrypt publie des certificats avec date d'expiration après 90 jours. Ainsi, afin de renouveler le certificat SSL, vous devez exécuter le Letsencrypt-Autito Commande à nouveau avant la date d'expiration, avec les mêmes options et indicateurs utilisés pour obtenir le certificat initial.

Un exemple sur la façon de renouveler manuellement le certificat est présenté ci-dessous.

# CD / USR / LOCAL / LETSENCRYPT # ./ LetSencrypt-Auto Certonly --Apache --renew-by-Default -d your_domain.TLD 

18. Pour automatiser ce processus, créez le script bash suivant fourni par Github Erikaheidi, dans / usr / local / bin / Répertoire avec le contenu suivant. (Le script est légèrement modifié pour refléter notre répertoire d'installation de LetSencrypt).

# vi / usr / local / bin / le-renew-centos 

Ajouter le contenu suivant à le-recew-centos déposer:

!/ bin / bash Domain = $ 1 le_path = "/ usr / local / lesencrypt" le_conf = "/ etc / letSencrypt" exp_limit = 30; get_domain_list () certomain = 1 $ config_file = "$ le_conf / renouvellement / $ Certomain.conf "si [ ! -f $ config_file]; ECHO "[ERREUR] Le fichier de configuration du certificat $ CERTDOMAIN n'a pas été trouvé."Exit 1; Fi Domains = $ (grep - only-matching --perl-regex" (?<=domains \= ).*" "$config_file") last_char=$(echo "$domains" | awk 'print substr($0,length,1)') if [ "$last_char" = "," ]; then domains=$(echo "$domains" |awk 'print substr($0, 1, length-1)') fi echo $domains;  if [ -z "$domain" ] ; then echo "[ERROR] you must provide the domain name for the certificate renewal." exit 1; fi cert_file="/etc/letsencrypt/live/$domain/fullchain.pem" if [ ! -f $cert_file ]; then echo "[ERROR] certificate file not found for domain $domain." exit 1; fi exp=$(date -d "'openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-'" +%s) datenow=$(date -d "now" +%s) days_exp=$(echo \( $exp - $datenow \) / 86400 |bc) echo "Checking expiration date for $domain… " if [ "$days_exp" -gt "$exp_limit" ] ; then echo "The certificate is up to date, no need for renewal ($days_exp days left)." exit 0; else echo "The certificate for $domain is about to expire soon. Starting renewal request… " domain_list=$( get_domain_list $domain ) "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "$domain_list" echo "Restarting Apache… " /usr/bin/systemctl restart httpd echo "Renewal process finished for domain $domain" exit 0; fi 

19. Accorder des autorisations d'exécution pour le script, installer avant JC package et exécuter le script afin de le tester. Utilisez votre nom de domaine comme paramètre de position pour le script. Émettez les commandes ci-dessous pour accomplir cette étape:

# yum install bc # chmod + x / usr / local / bin / le-renew-centos # / usr / local / bin / le-renew centos your_domain.TLD 

20. Enfin, en utilisant la planification Linux, ajoutez un nouveau travail Cron afin d'exécuter le script tous les deux mois, garantissant que votre certificat sera mis à jour avant la date d'expiration.

# crontab -e 

Ajouter la ligne suivante au bas du fichier.

0 1 1 * / 2 * / usr / local / bin / le-renew centos your_domain.tld >> / var / log / your_domain.TLD-Renwing.journal 2> & 1 

C'est ça! Votre serveur Apache fonctionne sur le dessus de Centos / Rhel Système sert maintenant du contenu SSL à l'aide d'un certificat SSL Free Let's Encrypt.