Lego „Automatic Certificates and HTTPS for everyone.“ ermöglicht es Ihnen, Ihre Domainnamen im Vorfeld der Autorität LET'S ENCRYPT zu validieren.
Installation :
sudo apt-get -y install lego
Nach der Installation ist es ratsam, ein Zertifikat zu erstellen, da die Zertifizierungsstelle eine Reihe von Beschränkungen . festlegt.
Sie können die Generierung Ihres Zertifikats testen:
cd ~ && sudo lego --server=https://acme-staging-v02.api.letsencrypt.org/directory --accept-tos --email yourEmail@x.com --http --http.webroot /var/www/habeuk/public/web --http.port 80 -d www.habeuk.com -d habeuk.com run
Wir stellen sicher, dass Sie sich im Root e Ihres Kontos „cd ~“ befinden. Dieser Teil ist wichtig, da die erzeugten Zertifikate in „~/.lego/certificates“ gespeichert werden. (Sie können dies auch von einem anderen Verzeichnis aus tun).
Erklärungen :
--server=https://acme-staging-v02.api.letsencrypt.org/directory : Testumgebung. (Es wird empfohlen, mit Tests zu beginnen, da die Anzahl der Abfragen in der Produktion begrenzt ist).
--accept-tos : Um die Nutzungsbedingungen zu akzeptieren.
--http : Die HTTP-01 Challenge-Methode,
--http.webroot :Der absolute Pfad zum Root-Verzeichnis
-d : die Domain oder Subdomain, Sie können mehrere angeben.
--email : hre E-Mail-Adresse.
Wenn es keine Fehler gab, können Sie es live versuchen ( zum Zeitpunkt, an dem ich dieses Memo schreibe, dürfen Sie 3 Fehler pro Woche machen ).
Erstellen Sie das Zertifikat mit lego:
sudo lego --accept-tos --email yourEmail@x.com --http --http.webroot /var/www/habeuk/public/web --http.port 80 -d habeuk.com -d www.habeuk.com run
Die erzeugten Dateien befinden sich in „~/.lego/certificates“.
Sie müssen die Datei virtual host aktualisieren und Apache neu starten.
Beispiel für die Datei virtual host:
<VirtualHost *:80>
ServerAdmin you_email@x.com
ServerName habeuk.com
ServerAlias www.habeuk.com
DocumentRoot /var/www/habeuk/public/web
<Directory /var/www/habeuk/public/web>
Options Indexes FollowSymlinks
AllowOverride All
Order Deny,Allow
Allow from all
DirectoryIndex disabled
DirectoryIndex index.php
</Directory>
#redirect to https
RewriteEngine On
RewriteCond %{SERVER_NAME} =habeuk.com [OR]
RewriteCond %{SERVER_NAME} =www.habeuk.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
# ErrorLog ${APACHE_LOG_DIR}/error.log
ErrorLog /var/www/habeuk/public/logs/error.log
CustomLog /var/www/habeuk/public/logs/access.log combined
# CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin kksasteph888@gmail.com
ServerName shopping.habeuk.com
DocumentRoot /var/www/habeuk/public/web
<Directory /var/www/habeuk/public/web>
Options Indexes FollowSymLinks
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
ErrorLog /var/www/habeuk/public/logs/error.log
CustomLog /var/www/habeuk/public/logs/access.log combined
#SSL conf.
SSLEngine on
SSLCertificateFile /home/ubuntu/.lego/certificates/habeuk.com.crt
SSLCertificateKeyFile /home/ubuntu/.lego/certificates/habeuk.com.key
</VirtualHost>
Sie müssen nach der Konfiguration des vhost suchen, in unserem Fall nach unserer Konfigurationsdatei „/etc/apache2/sites-available/habeuk.conf“.
sudo a2dissite habeuk.conf && sudo a2ensite habeuk.conf
Und schließlich Apache neu starten :
sudo systemctl reload apache2
Die lego-Anwendung hat einen Nachteil, Sie müssen die Domain nach 90 Tagen manuell neu generieren.
sudo lego --accept-tos --email yourEmail@x.com --http --http.webroot /var/www/habeuk/public/web --http.port 80 -d habeuk.com -d www.habeuk.com renew
(Der Befehl ist ähnlich wie das Erstellen des Zertifikats, aber man ersetzt run durch renew).
Sie können auch cerboot verwenden, das die Erneuerung selbstständig durchführt.
Siehe unser Tutorial: Let's Encrypt SSL: Installation und Konfiguration auf Debian 11