J'ai un serveur Ubuntu 16.04 en cours d'exécution et j'utilise un serveur virtuel dans Apache2 qui utilise (ou devrait utiliser) ssl.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/mysite.ssl.error.log
CustomLog ${Apache_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
J'ai PAS activé les sites standard disponibles/default-ssl.conf.
Je suis maintenant en mesure de naviguer vers https://my.domain.name.de et il demande à Firefox d’ajouter une exception, ce qui est tout à fait normal si je n’ai acheté aucun certificat.
Mais je me demandais où il est configuré pour utiliser les certificats du répertoire/etc/Apache2/ssl /. Je ne trouve aucune configuration où il est dit d'utiliser cela. Je pensais tout le temps qu’il utiliserait quelque chose du dossier/etc/ssl.
Ou ai-je peut-être pas activé SSL correctement?
Selon certains manuels, les fichiers de certificat SSL doivent être placés sous /etc/Apache2/ssl/
, mais ils peuvent être placés dans un dossier différent, en fonction de votre propre configuration.
Pour avoir un accès HTTPS à votre site, vous devez activer le SSLEngine
et fournir un certificat SSL valide .
Pour ce faire, vous devez utiliser l'outil de ligne de commande OpenSSL pour générer votre propre certificat. Ensuite, vous devez valider le certificat auprès de tout fournisseur, tel que COMODO , StarSSL , votre fournisseur DNS local, etc. ils offrent des certificats gratuits pour quelques mois. En ce qui concerne cette méthode de génération de certificat, vous pouvez consulter ces guides: for 14.04 et 16.04 .
Aussi, vous pouvez utiliser l'outil logiciel Encryptons . De Encryptons la page de mise en route :
Pour activer HTTPS sur votre site Web, vous devez obtenir un certificat (un type de fichier) d'une autorité de certification. Let’s Encrypt est une autorité de certification. Pour obtenir un certificat pour le domaine de votre site Web à partir de Let’s Encrypt, vous devez démontrer le contrôle de ce domaine. Avec Let’s Encrypt, vous utilisez un logiciel utilisant le protocole ACME, qui s’exécute généralement sur votre hôte Web.
Je vous suggère d'utiliser Let's Encrypt, à ce stade. Alors commençons.
1st - installer Let's Encrypt:
Sudo apt install python-letsencrypt-Apache
2nd - génère le certificat. Pour générer un certificat SSL compatible avec Apache, tapez simplement: letsencrypt --Apache
. Cette commande lancera le dialogue interactif (où vous devrez renseigner les données personnelles de votre site) et générera le fichier HTTPS.conf
en fonction de votre fichier HTTP.conf
existant.
Vous pouvez utiliser et certains paramètres supplémentaires, par exemple letsencrypt --Apache certonly
fera la même chose que ci-dessus mais ne générera pas le fichier HTTPS.conf
.
Aussi, vous pouvez mettre tous les paramètres nécessaires pour éviter le dialogue. Selon les informations fournies dans la question, notre commande devrait ressembler à ceci:
Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d my.domain.name.de
Supposons que vous choisissez la dernière approche. La commande générera tous les fichiers de certificat nécessaires et ils seront placés dans le dossier /etc/letsencrypt/archive/my.domain.name.de/
. De plus, ces fichiers seront liés de manière symétrique dans le dossier /etc/letsencrypt/live/my.domain.name.de/
. Ces liens symboliques seront mis à jour automatiquement à l'avenir, nous les utiliserons donc.
3rd - configurez (manuellement) votre HTTPS VirtualHost. Selon ce qui précède, le fichier de configuration devrait ressembler à ceci:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/my.domain.name.de/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.name.de/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/my.domain.name.de/chain.pem
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/mysite.ssl.error.log
CustomLog ${Apache_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
4ème - a2ensite
le nouvel hôte virtuel, juste au cas où a2enmod ssl
et redémarrez Apache. C'est ça. J'espère que vous aurez maintenant un accès HTTPS à votre site.
5ème - renouvelez votre certificat dans le futur. Pour ce faire, vous pouvez éditer la Crontab de la racine et ajouter un travail qui tentera de letsencrypt renew
les certificats, tous les dimanches à 3h00, par exemple. Tapez Sudo crontab -e
et ajoutez cette ligne en bas:
0 3 * * 0 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log 2>&1
Remarques:
letsencrypt
/python-letsencrypt-Apache
est disponible pour Ubuntu 16.04 et supérieur, pour les versions précédentes, il y a certbot
qui est presque identique - de Manuels Ubuntu .
Si vous avez peu de VirtualHosts, vous pouvez utiliser cette syntaxe pour générer leurs certificats (tous ensemble):
Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d my.domain.name-1.de -d my.domain.name-2.de -d my.domain.name-3.de
certbot.eff.org - Activez automatiquement HTTPS sur votre site Web avec Certbot de EFF, en déployant des certificats Let's Encrypt.
La réponse ci-dessus est basée sur celle-ci , où davantage de détails sur la configuration VH d'Apache sont fournis.
Lisez ici comment et pourquoi vous devriez mettre à jour votre letsecrypt
/certbot
jusqu'au 13 février 2019: Échec de la mise à niveau de certbot sur Ubuntu Bionic