GNU/Linux >> Tutoriels Linux >  >> FreeBSD

Comment sécuriser Apache avec SSL et Let's Encrypt dans FreeBSD

Dans ce tutoriel, nous allons apprendre à sécuriser Apache HTTP serveur avec TLS/SSL certificats offerts par Let's Encrypt dans FreeBSD 11.x . Nous verrons également comment automatiser le processus de renouvellement du certificat pour Lets' Encrypt.

Lire aussi :Installez Let's Encrypt pour Nginx sur FreeBSD

TLS/SSL Les certificats sont utilisés par le serveur Web Apache pour crypter la communication entre les nœuds finaux, ou plus ordinairement entre le serveur et le client afin d'assurer la sécurité. Let's Encrypt fournit certbot utilitaire de ligne de commande, qui est une application qui peut faciliter la façon dont vous pouvez obtenir gratuitement des certificats de confiance.

Exigences :

  1. Installation de FreeBSD 11.x
  2. 10 choses à faire après l'installation de FreeBSD
  3. Comment installer Apache, MariaDB et PHP dans FreeBSD

Étape 1 : Configurer Apache SSL sur FreeBSD

1. Avant de commencer à installer l'utilitaire certbot et à créer le fichier de configuration TSL pour Apache , créez d'abord deux répertoires distincts nommés sites-available et compatible avec les sites dans le répertoire de configuration racine d'Apache en exécutant les commandes ci-dessous.

Le but de ces deux répertoires est de faciliter la gestion de la configuration de l'hébergement virtuel dans le système, sans modifier le principal Apache httpd.conf fichier de configuration chaque fois que nous ajoutons un nouvel hôte virtuel.

# mkdir /usr/local/etc/apache24/sites-available# mkdir /usr/local/etc/apache24/sites-enabled

2. Après avoir créé les deux répertoires, ouvrez Apache httpd.conf fichier avec un éditeur de texte et ajoutez la ligne suivante près de la fin du fichier comme illustré ci-dessous.

# nano /usr/local/etc/apache24/httpd.conf

Ajoutez la ligne suivante :

IncludeOptional etc/apache24/sites-enabled/*.conf

3. Ensuite, activez le TLS module pour Apache en créant le nouveau fichier suivant nommé 020_mod_ssl.conf dans modules.d répertoire avec le contenu suivant.

# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf

Ajoutez les lignes suivantes au fichier 020_mod_ssl.conf .

Écouter 443SSLProtocol ALL -SSLv2 -SSLv3SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5SSLPassPhraseDialog builtinSSLSessionCacheTimeout 300

4. Maintenant, décommentez le SSL module de /usr/local/etc/apache24/httpd.conf fichier en supprimant le hashtag au début de la ligne suivante comme illustré ci-dessous :

LoadModule ssl_module libexec/apache24/mod_ssl.so

5. Ensuite, créez le TLS fichier de configuration pour votre domaine dans sites-available répertoire, de préférence avec le nom de votre domaine, comme présenté dans l'extrait ci-dessous :

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Ajoutez la configuration d'hôte virtuel suivante au fichier bsd.lan-ssl.conf .

 ServerName www.votredomaine.com ServerAlias ​​votredomaine.com DocumentRoot "/usr/local/www/apache24/data/" SSLEngine on SSLCertificateFile "/usr/local/etc/letsencrypt/live/www. votredomaine.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.votredomaine.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.votredomaine.com/ fullchain.pem" SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log" \ "%t %h %{ SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"  Options Indexes FollowSymLinks MultiViews #AllowOverride contrôle quelles directives peuvent être placées dans les fichiers .htaccess. AllowOverride All #Controls who can get stuff from this server file Exige tous les  ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log " combiné

Assurez-vous de remplacer la variable de nom de domaine de ServerName , Alias ​​du serveur , Journal des erreurs , CustomLog déclarations en conséquence.

Étape 2 :Installez Lets'Encrypt sur FreeBSD

6. À l'étape suivante, exécutez la commande suivante afin d'installer certbot utilitaire fourni par Let's Encrypt , qui sera utilisé pour obtenir Apache TSL certificats gratuits pour votre domaine.

Lors de l'installation de certbot une série d'invites s'affichera sur votre écran. Utilisez la capture d'écran ci-dessous pour configurer certbot utilitaire. En outre, la compilation et l'installation de l'utilitaire certbot peuvent prendre un certain temps, en fonction des ressources de votre machine.

# cd /usr/ports/security/py-certbot# make install clean

7. Une fois le processus de compilation terminé, lancez la commande ci-dessous afin de mettre à jour certbot utilitaire et certbot dépendances requises.

# pkg install py27-certbot# pkg install py27-acme

8. Afin de générer un certificat pour votre domaine, lancez la commande comme illustré ci-dessous. Assurez-vous de fournir l'emplacement Webroot correct où les fichiers de votre site Web sont stockés dans le système de fichiers (DocumentRoot directive de votre fichier de configuration de domaine) en utilisant le -w drapeau. Si vous avez plusieurs sous-domaines, ajoutez-les tous avec le -d drapeau.

# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d votredomaine.com -d www.votredomaine.com

Lors de l'obtention du certificat, fournissez une adresse e-mail pour le renouvellement du certificat, appuyez sur a pour accepter les termes et conditions de Let's Encrypt et n de ne pas partager l'adresse e-mail des partenaires Let's Encrypt.

Certbot Command Output
Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.logEntrez l'adresse e-mail (utilisée pour les avis de renouvellement et de sécurité urgents) (Entrez 'c' pour annuler) :[email protected]Il semble y avoir des problèmes avec cela adresse. Entrez l'adresse e-mail (utilisée pour le renouvellement urgent et les avis de sécurité) Si vous voulez vraiment ignorer cela, vous pouvez exécuter le client avec --register-unsafely-without-email mais assurez-vous de sauvegarder votre clé de compte depuis /etc/letsencrypt/accounts (Entrez 'c' pour annuler):[email protected]----------------------------------------------------- ----------------------------------------Veuillez lire les conditions d'utilisation sur https:// letencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Vous devez accepter afin de vous inscrire auprès du serveur ACME sur https://acme-v01.api.letsencrypt.org/directory------------------------- -------------------------------------------------- ----(A)gree/(C)ancel :a -------------------------------------------------- ----------------------------- Accepteriez-vous de partager votre adresse e-mail avec l'Electronic Frontier Foundation, un partenaire fondateur de Let's Le projet Encrypt et l'organisation à but non lucratif qui développe Certbot ? Nous aimerions vous envoyer un e-mail sur EFF et notre travail pour chiffrer le Web, protéger ses utilisateurs et défendre les droits numériques. -------------------------------------------------- ----------------------------- (O)oui/(N)o :n Obtention d'un nouveau certificat Réalisation des challenges suivants :Challenge http-01 pour www.domain.com Utilisation du chemin webroot /usr/local/www/apache24/data pour tous les domaines non appariés. En attente de vérification... Défis de nettoyage REMARQUES IMPORTANTES :- Félicitations ! Votre certificat et votre chaîne ont été enregistrés dans /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Votre certificat expirera le 2017-11-15. Pour obtenir une nouvelle version ou une version modifiée de ce certificat à l'avenir, exécutez simplement certbot à nouveau. Pour renouveler de manière non interactive *tous* vos certificats, exécutez "certbot renouveler" - Les informations d'identification de votre compte ont été enregistrées dans votre répertoire de configuration Certbot à /usr/local/etc/letsencrypt. Vous devriez faire une sauvegarde sécurisée de ce dossier maintenant. Ce répertoire de configuration contiendra également des certificats et des clés privées obtenus par Certbot, il est donc idéal de faire des sauvegardes régulières de ce dossier. - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en :faisant un don à ISRG / Let's Encrypt :https://letsencrypt.org/donate faisant un don à EFF :https://eff.org/donate-le

9. Après avoir obtenu les certificats pour votre domaine, vous pouvez exécuter la commande ls afin de répertorier tous les composants du certificat (chaîne, clé privée, certificat) comme présenté dans l'exemple ci-dessous.

# ls -al /usr/local/etc/letsencrypt/live/www.votredomaine.com/

Étape 3 :Mettre à jour les certificats Apache TLS sur FreeBSD

10. Afin d'ajouter des certificats Let's Encrypt à votre site Web, ouvrez le fichier de configuration apache pour votre domaine et mettez à jour les lignes suivantes pour refléter le chemin des certificats émis.

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Ajoutez ces lignes de certificat TLS :

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.votredomaine.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.votredomaine.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.votredomaine.com/fullchain.pem"

11. Enfin, activez le fichier de configuration TLS en créant un lien symbolique pour votre fichier de configuration TLS de domaine vers sites-enabled répertoire, vérifiez les configurations Apache pour d'éventuelles erreurs de syntaxe et, si la syntaxe est correcte, redémarrez le démon Apache en exécutant les commandes ci-dessous.

# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/# apachectl -t# service apache24 restart 

12. Afin de vérifier si le service Apache écoute sur HTTPS port 443 , exécutez la commande suivante pour répertorier les sockets réseau httpd.

# chaussettesstat -4 | grep httpd

13. Vous pouvez accéder à votre adresse de domaine à partir d'un navigateur via le protocole HTTPS afin de confirmer que les certificats Let's Encrypt sont appliqués avec succès.

https://www.votredomaine.com

14. Afin d'obtenir des informations supplémentaires sur le certificat Let's Encrypt émis à partir de la ligne de commande, utilisez le openssl commande comme suit.

# openssl s_client -connect www.votredomaine.com:443

15. Vous pouvez également vérifier si le trafic est chiffré avec un certificat valide fourni par Let's Encrypt CA à partir d'un appareil mobile, comme illustré dans la capture d'écran mobile ci-dessous.

C'est tout! Les clients peuvent désormais visiter votre site Web en toute sécurité, car le trafic qui circule entre le serveur et le navigateur du client est crypté. Pour des tâches plus complexes concernant l'utilitaire certbot, visitez le lien suivant :https://certbot.eff.org/


FreeBSD
  1. Comment installer et sécuriser phpMyAdmin avec Apache sur CentOS 7

  2. Comment sécuriser le serveur Web Apache avec Let's Encrypt sur RHEL 8

  3. Comment installer WonderCMS avec Apache et Lets Encrypt SSL sur CentOS 8

  4. Comment sécuriser Nginx avec SSL et Let's Encrypt dans FreeBSD

  5. Comment sécuriser une connexion SSL avec Apache sur Ubuntu 18.04

Comment installer Let's Encrypt SSL avec Apache sur CentOS 7

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Apache avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment utiliser Let's Encrypt avec Cloudflare

Comment sécuriser Apache avec le certificat SSL Let's Encrypt sur CentOS 8

Comment sécuriser un nom d'hôte Plesk avec SSL