Um sicherzustellen, dass die Kommunikation mit einer Website nicht überwacht werden kann und um sicherzustellen, dass die Inhalte tatsächlich von der eingegebenen Website stammen, gibt es die Möglichkeit die Verbindung mit SSL-Zertifikaten zu sichern. Für Details siehe unter Secure Socket Layer (SSL). D.h. der Webserver (nginx/apache) muss Zugriff auf einen privaten und einen öffentlichen Schlüssel haben.
Die Erstellung des Schlüssels und die Verbindung mit dem Webserver wird im folgenden beschrieben.
Neu (nginx)
Es gibt verschiedene Programme die das Erstellen und erneuern von Zeritfikaten vereinfachen. Z.B. certbot. Mit dem Befehl
certbot --nginx -d www.lexexakt.de
werden RSA-Zertifikate über den Anbieter letsencrypt erzeugt und auf dem Server gespeichert. Das Erzeugen selbst ist intransparent - man kann dann aber die Schlüssel auf dem Server prüfen.
Die Zeritfikate für die SSL-Verbindung (von letencrypt) liegen bei Ubuntu im Pfad:
/etc/letsencrypt/sub.example.com
oder
/etc/letsencrypt/live/sub.example.com
Es gibt RSA und ECC Zertifikate. Diese erfüllen die gleiche Aufgabe. ECC-Zertfikate gelten als sicherer.
Für Nginx muss der Pfad zu den Zertfikaten unter
/etc/nginx/conf.d/HttpGateway.conf
eingetragen werden. Der Eintrag sieht z.B. wie folgt aus:
# RSA certificates
ssl_certificate /etc/letsencrypt/live/www.lexexakt.de/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.lexexakt.de/privkey.pem; # managed by Certbot
Zum aktualisieren der Zertfikate genügt:
sudo certbot renew
alt (apache)
Unter:
:/etc/apache2/sites-available#
liegt eine Konfigurationdatei für den virtuellen SSL-Host z.B.
000-default-le-ssl.conf
Diese Konfiguration muss aktiviert werden mit dem Kommando
a2ensite 000-default-le-ssl.conf
und verweist auf den Speicherort für die Schlüsseldateien.
Z.B: /etc/letsencrypt/live/domain.de/
This directory contains your keys and certificates.
`privkey.pem` : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem` : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.
sudo /etc/letsencrypt/letsencrypt-auto renew
(...)
-------------------------------------------------------------------------------
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/sub.example.com/fullchain.pem (success)
-------------------------------------------------------------------------------
Achtung der Prozess benötigt an der Stelle
Creating virtual environment...
Installing Python packages...
mehrere Minuten für die Ausführung.
Nach Abschluss muss ggf. der Server (z.B. apache2) neu gestartet werden (siehe dort).
1. Https läuft über Port 443, daher muss der Port offen sein. Dass kann wie folgt überprüft werden:
$ nmap host.com
Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-12 13:15 CEST
Nmap scan report for host.com (192.168.178.35)
Host is up (0.020s latency).
Other addresses for host.com (not scanned): 2003:dd:9f48:de00:ec7a:6c4d:6313:7bff
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds
2. Der virtuelle SSL host (VHOST) muss aktiviert sein:
apachectl -t -D DUMP_VHOSTS
AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:443 host.com (/etc/apache2/sites-enabled/000-default-le-ssl.conf:2)
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
Läuft kein virtueller Host für https auf Port 443 muss dieser host aktiviert werden. Siehe oben.
Werbung:
|