Durch SSL-Zertifikate lassen sich Webseiten verschlüsseln und sind ein Muss für jeden sicheren Webserver. Mit Let’s Encrypt lassen sich die Zertifikate kostenlos und einfach selber beschaffen. Wir stellen Ihnen hier das Apache Modul mod_md auf einem Ubuntu 20.04 vor.
Installation von mod_md
Um das Apache Modul zu installieren, geben Sie folgendes auf dem Linux Server ein.
apt install libapache2-mod-md -y
Nun müssen die passenden Apache Module aktiviert werden.
a2enmod md
a2enmod ssl
a2enmod rewrite
a2enmod headers
Starten Sie den Apache neu.
/etc/init.d/apache2 restart
Anlegen der vHost Datei für mod_md
Für den Webserver muss nun noch eine vHost Datei angelegt werden.
Bitte geben Sie anstatt server.de den Namen ihres Webservers an.
vi /etc/apache2/sites-enabled/server.de.conf
In diese Datei kommt nun folgender Inhalt.
## Apache with mod_md Let's Encrypt ##
## mod_md config for Let's Encrypt ##
ServerAdmin webmaster@server.de
MDCertificateAgreement accepted
MDomain www.server.de
MDPrivateKeys RSA 4096
## HTTP port 80 config ##
<VirtualHost *:80>
ServerAdmin webmaster@server.de
ServerName www.server.de
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/www.server.de-error.log
CustomLog ${APACHE_LOG_DIR}/www.server.de-access.log combined
# Redirect all http requests to HTTPS (uncomment the following two lines when HTTPS issued)
# RewriteEngine On
# RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
## HTTPS Config ##
<VirtualHost *:443>
SSLEngine on
Include /etc/apache2/options-ssl-apache.conf
ServerAdmin webmaster@server.de
ServerName www.server.de
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/www.server.de-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/www.server.de-ssl-access.log combined
# Turn on HTTP/2
Protocols h2 http/1.1
</VirtualHost>
## Turn on OCSP Stapling ##
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
## Permission for our DocumentRoot ##
<Directory /var/www/>
Options -Indexes
AllowOverride ALL
Require all granted
</Directory>
# Automatische Erneuerung des Zertifikats via watchdog_module
<Location "/md-status">
SetHandler md-status
</Location>
Um noch die passenden SSL Optionen zu konfigurieren legen Sie noch eine Datei an.
vi /etc/apache2/options-ssl-apache.conf
Folgendes soll in die Datei geschrieben werden.
# Baseline setting to Include for SSL sites
SSLEngine on
# Intermediate configuration, tweak to your needs
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
Header always set Strict-Transport-Security: "max-age=31536000; includeSubDomains; preload"
# Add vhost name to log entries:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
#CustomLog /var/log/apache2/access.log vhost_combined
#LogLevel warn
#ErrorLog /var/log/apache2/error.log
# Always ensure Cookies have "Secure" set (JAH 2012/1)
#Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"
Anschließend wird Apache wieder neu gestartet.
/etc/init.d/apache2 restart
Nach dem Neustart wird das Zertifikat erstellt.
https Weiterleitung
Zum Schluss muss noch die https Weiterleitung im vHost aktiviert werden.
vi /etc/apache2/sites-enabled/server.de.conf
Passen Sie folgenden Abschnitt an.
# Redirect all http requests to HTTPS (uncomment the following two lines when HTTPS issued)
# RewriteEngine On
# RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
Stattdessen sollten folgendes eingefügt werden.
# Redirect all http requests to HTTPS (uncomment the following two lines when HTTPS issued)
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
Weitere interessante Artikel finden Sie in unserem Blog.
Bei Fragen können Sie uns auch gerne kontaktieren.
- Nextcloud Contact App - 20. Januar 2023
- Beschaffung eines Let’s Encrypt Zertifikates mit Certbot - 17. Januar 2023
- Nextcloud Impersonate App - 9. Januar 2023