Apprenons à installer le serveur HTTP Apache et à le sécuriser avec le certificat Let's Encrypt.
Introduction
Apache est l'un des serveurs Web HTTP les plus utilisés. Configurer Apache et le sécuriser avec un certificat SSL est la première étape que vous devez effectuer pour vos applications Web.
Dans ce didacticiel, vous apprendrez à configurer Apache pour votre site Web sur Ubuntu et CentOS. J'ai testé ça sur VM DigitalOcean.
À des fins de démonstration. Je vais utiliser le nom de domaine de test test.sanakil.xyz, lequel est suralimenté par Cloudflare.
N'oubliez pas de remplacer le test.sanakil.xyz domaine avec votre domaine réel. 📢
DNS Record Creation
Connectez-vous à Cloudflare ou à votre registraire de domaine (sinon Cloudflare) et créez un Un enregistrement pour faire pointer le domaine vers l'adresse IP de la VM cloud.

Connectez-vous à votre serveur cloud via SSH.
Installing Apache(Ubuntu)
Pour mettre à jour les packages disponibles
sudo apt-get update
Installez Apache
sudo apt-get install apache2
Autorisez les ports 80 et 443 dans votre pare-feu pour le serveur HTTP.
sudo ufw allow 'Apache Full'
Vérifiez que votre apache installé fonctionne correctement
sudo systemctl status apache2

Installing Apache(CentOS)
Mettez à jour les packages disponibles.
sudo yum update
Installez Apache
sudo yum install httpd
Ajoutez les ports 80 et 443 dans le pare-feu pour accéder à l'application Web.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Démarrez Apache et vérifiez l'état de fonctionnement
sudo systemctl start httpd
sudo systemctl status httpd
Create VirtualHost for the website
Un hôte virtuel peut être créé de deux manières en fonction du type d'application Web / de site Web que nous servons.
Supposons que l'application dispose déjà d'un serveur Web tel que Node exécuté sur un port. Nous pouvons utiliser un proxy pour le servir dans apache. Ou si l'application ne sert que les fichiers comme des sites statiques. Nous pouvons spécifier le chemin de l'application à servir dans apache.
Créez un fichier hôte virtuel dans apache - le fichier de configuration peut avoir n'importe quel nom. Mais le garder avec le nom de domaine que nous allons servir l'application Web sera mieux pour une identification facile.
Configuration supplémentaire pour CentOS
Dans CentOS (SELinux), tout n'est pas activé par défaut comme Ubuntu.
Nous devons créer compatible avec les sites et sites disponibles dossiers dans apache.
compatible avec les sites - dit à Apache de servir le visiteur avec les fichiers de configuration qu'il contient
sites disponibles - stocker les fichiers de configuration de l'hôte virtuel
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
Dites maintenant à l'apache de lire le fichier conf dans le dossier des sites activés.
sudo vi /etc/httpd/conf/httpd.conf
Ajoutez la ligne ci-dessous à la fin du fichier
IncludeOptional sites-enabled/*.conf
Configure Apache to serve files
- Créez un dossier pour diffuser votre application Web
sudo mkdir -p /var/www/test.sanakil.xyz/webapp
sudo vi /var/www/test.sanakil.xyz/webapp/index.html
- Collez l'extrait de code HTML ci-dessous pour le test
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache webapp</title>
</head>
<body>
<h1>My Apache webapp is working in test.sanakil.xyz</h1>
</body>
</html>
- Créez un dossier pour générer et stocker des journaux
sudo mkdir -p /var/www/test.sanakil.xyz/log
sudo touch /var/www/test.sanakil.xyz/request.log
sudo touch /var/www/test.sanakil.xyz/log/error.log
- Ouvrez le fichier conf (Ubuntu)
sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
- Ouvrez le fichier conf (CentOS)
sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf
- Collez l'extrait de configuration ci-dessous en modifiant votre-nom-de-domaine
<VirtualHost *:80>
ServerName test.sanakil.xyz
ServerAlias test.sanaki.xyz
DocumentRoot /var/www/test.sanakil.xyz/webapp
ErrorLog /var/www/test.sankil.xyz/log/error.log
CustomLog /var/www/test.sanakil.xyz/log/requests.log combined
</VirtualHost>
- Donnez l'autorisation requise pour votre dossier.
sudo chown -R $USER:$USER /var/www/test.sanakil.xyz
sudo chmod -R 755 /var/www/test.sanakil.xyz
sudo a2ensite test.sanakil.xyz.conf
Désactivez le fichier de configuration par défaut pour des raisons de sécurité
sudo a2dissite 000-default.conf
Redémarrez apache pour que les modifications prennent effet.
sudo systemctl restart apache2
Activez votre fichier de configuration d'hôte virtuel dans Apache (CentOS)
Créer un lien symbolique pour Apache
sudo ln -s /etc/httpd/sites-available/test.sanakil.xyz.conf
/etc/httpd/sites-enabled/test.sanakil.xyz.conf
Redémarrez apache pour que les modifications prennent effet.
sudo systemctl restart httpd
Enabling HTTPS
L'activation de HTTPS dans le serveur Web Apache dans Ubuntu a été facilitée en utilisant certbot et Encryptons.
Chiffrons est une organisation à but non lucratif qui a fourni gratuitement un certificat SSL pour des millions de sites Web.
Certbot est un logiciel qui configurera automatiquement HTTPS pour notre site Web à l'aide de Let's encrypt.
Ajouter et installer certbot pour apache (Ubuntu)
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
Ajouter et installer certbot pour apache (CentOS)
sudo yum install epel-release
sudo yum install certbot python2-certbot-apache mod_ssl
Obtenez un certificat SSL
sudo certbot --apache -d your-domain-name
Si toute la vérification est effectuée par certbot sans aucun problème.
Il demandera une redirection HTTPS. Sélectionnez l'option 2 et entrez.
C'est tout.
Si tout fonctionne correctement, https://test.sanakil.xyz affichera une page d'index HTML de base que nous avons créée.

Conclusion
J'espère que cela vous donne une idée de l'installation et de la mise en œuvre d'un certificat SSL sur Apache.
Ensuite, découvrez comment implémenter un certificat dans Nginx.