1. Installer OpenSSL : sudo apt-get update sudo apt-get install openssl 2. Configurer la CA : mkdir -p ~/myCA/{certs,crl,newcerts,private,csr} cd ~/myCA chmod 700 private touch index.txt echo 1000 > serial 3. Créer la clé privée de la CA : openssl genpkey -algorithm RSA -out private/ca.key 4. Créer le certificat de la CA : openssl req -new -x509 -key private/ca.key -out certs/ca.crt -days 3650 -subj "/C=FR/ST=Nouvelle-Aquitaine/L=Niort/O=MyCA/OU=IT/CN=univ-poitiers.local" 5. Créer une demande de certificat (CSR) pour le serveur Apache : openssl genpkey -algorithm RSA -out private/apache.key openssl req -new -key private/apache.key -out csr/apache.csr -subj "/C=FR/ST=Nouvelle-Aquitaine/L=Niort/O=MyServer/OU=IT/CN=univ-poitiers.fr" 6. Signer le certificat du serveur Apache avec la CA : openssl ca -in csr/apache.csr -out certs/apache.crt -days 365 -batch -config <(cat < ServerAdmin webmaster@localhost ServerName univ-poitiers.fr ServerAlias www.univ-poitiers.fr DocumentRoot /var/www/univ-poitiers.fr ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/myCA/certs/apache.crt SSLCertificateKeyFile /etc/ssl/myCA/private/apache.key SSLCertificateChainFile /etc/ssl/myCA/certs/ca.crt 7. Configurer les permissions: sudo chmod 644 /home/ubuntu/myCA/certs/apache.crt sudo chmod 600 /home/ubuntu/myCA/private/apache.key sudo chmod 644 /home/ubuntu/myCA/certs/ca.crt 8. Configurer Apache pour utiliser le certificat : ServerAdmin webmaster@example.com ServerName www.example.com SSLEngine on SSLCertificateFile /home/ubuntu/myCA/certs/apache.crt SSLCertificateKeyFile /home/ubuntu/myCA/private/apache.key SSLCertificateChainFile /home/ubuntu/myCA/certs/ca.crt DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined 9. Redémarrer Apache : sudo systemctl restart apache2 ### En cas d'erreur avec les certificats not matched : # Vérifiez la correspondance manuellement : On doit retrouver les mêmes résultats openssl x509 -noout -modulus -in certs/apache.crt | openssl md5 openssl rsa -noout -modulus -in private/apache.key | openssl md5 # Vérifier les permissions: sudo chmod 644 /home/ubuntu/myCA/certs/apache.crt sudo chmod 600 /home/ubuntu/myCA/private/apache.key sudo chmod 644 /home/ubuntu/myCA/certs/ca.crt ########## A VOIR L'erreur self-signed certificate in certificate chain indique que le certificat intermédiaire (ca.crt) est auto-signé, ce qui n'est pas reconnu comme une autorité de certification valide par les navigateurs. Pour résoudre ce problème, vous devez utiliser un certificat intermédiaire signé par une autorité de certification (CA) reconnue. Étapes pour résoudre le problème : Obtenir un certificat signé par une CA reconnue : Si vous utilisez une CA interne pour des raisons spécifiques (par exemple, un réseau d'entreprise), assurez-vous que le certificat racine de cette CA est installé sur tous les appareils clients qui accèdent au site. Pour un site public, il est recommandé d'utiliser un certificat signé par une CA reconnue (comme Let's Encrypt, DigiCert, etc.). Utiliser Let's Encrypt pour obtenir un certificat gratuit : Let's Encrypt est une CA reconnue qui fournit des certificats SSL gratuits. Vous pouvez utiliser Certbot, un outil automatisé pour obtenir et installer des certificats Let's Encrypt. Installation et utilisation de Certbot : Installer Certbot : Copier sudo apt-get update sudo apt-get install certbot python3-certbot-apache Obtenir et installer un certificat SSL : Copier sudo certbot --apache -d univ-poitiers.fr -d www.univ-poitiers.fr Suivez les instructions à l'écran pour compléter le processus. Certbot configurera automatiquement Apache pour utiliser les nouveaux certificats. Vérifier la configuration SSL : Certbot modifiera automatiquement votre fichier de configuration Apache pour utiliser les nouveaux certificats. Vous pouvez vérifier la configuration dans /etc/apache2/sites-available/ ou /etc/apache2/sites-enabled/. Redémarrer Apache : Copier sudo systemctl restart apache2 Vérifier les logs d'Apache : Copier sudo tail -f /var/log/apache2/error.log Tester votre site en HTTPS : Ouvrez votre navigateur et accédez à votre site en utilisant https://univ-poitiers.fr. Vérifiez si le certificat est maintenant reconnu comme valide. Utilisation d'un certificat interne (si nécessaire) : Si vous devez utiliser un certificat interne, assurez-vous que le certificat racine de votre CA interne est installé sur tous les appareils clients qui accèdent au site. Voici comment procéder : Exporter le certificat racine de votre CA interne : Exportez le certificat racine de votre CA interne au format PEM. Installer le certificat racine sur les appareils clients : Sur chaque appareil client, installez le certificat racine dans le magasin de certificats de confiance. Les étapes varient selon le système d'exploitation. Exemple pour Windows : Ouvrez le Gestionnaire de certificats. Importez le certificat racine dans le magasin "Autorités de certification racines de confiance". Exemple pour macOS : Ouvrez l'application "Trousseau d'accès". Importez le certificat racine dans le trousseau "Système". En suivant ces étapes, vous devriez être en mesure de résoudre le problème de certificat non sécurisé. Si vous avez des questions supplémentaires ou si vous rencontrez des problèmes, n'hésitez pas à demander.