Apache Webserver: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 33: Zeile 33:
  
 
Der private Schlüssel server.key kann nach <code>/etc/ssl/private</code> und das Zertifikat mit dem öffentlichen Schlüssel server.crt kann nach <code>/etc/ssl/certs</code> kopiert werden
 
Der private Schlüssel server.key kann nach <code>/etc/ssl/private</code> und das Zertifikat mit dem öffentlichen Schlüssel server.crt kann nach <code>/etc/ssl/certs</code> kopiert werden
 +
 +
===== localhost mit https-Zertifikaten =====
 +
 +
Das Google-Tool [https://blog.filippo.io/mkcert-valid-https-certificates-for-localhost/ MkCert] errichtet auf dem lokalen Rechner eine private Certification Authority (CA). Diese kann mit mkcert erstellte eigene Zertifikate (z.B. für https-Verbindung zu localhost) als vertrauenswürdig einstufen.
  
 
===== Apache2 konfigurieren =====
 
===== Apache2 konfigurieren =====
Zeile 63: Zeile 67:
  
 
===== Kostenlose offizielle Zertifikate =====
 
===== Kostenlose offizielle Zertifikate =====
 +
Der Standardanbieter für kostenlose offizielle Zertifikate ist Letsencrypt. Dessen Standardtool heißt certbot und nutzt das ACME-Protokoll.
  
StartSSL scheint der einzige offizielle Anbieter von kostenlosen SSL-Zertifikaten zu sein. Diese Zertifikate eignen sich angeblich auch für [[S/MIME]]. Jedes Jahr müssen die kostenlosen Zertifikate verlängert werden.
+
Es gibt verschiedene Wege des Nachweises der Berechtigung im Ausstellungsprozess.
  
 
+
* Das Hinterlegen eines TXT-Records im DNS
Siehe
+
** https://medium.com/@__timam__/generate-let-encrypt-ssl-certificate-manually-febc949510c2
* [http://www.debacher.de/wiki/Server-Zertifikate_mit_StartSSL Anleitung für StartSSL von debacher]
+
* Das Hinterlegen einer Datei, die mit dem Webserver ausgeliefert wird.
* [http://www.small-blog.de/verlangern-eines-startssl-free-class-1-ssl-zertifikat/ StartSSL-Zertifikat verlängern]
 
* [http://www.hagenfragen.de/tipps-und-tricks/startssl-client-certificate-verlaengern.html http://www.hagenfragen.de/tipps-und-tricks/startssl-client-certificate-verlaengern.html noch einmal: Zertifikat verlängern]
 
  
 
===== Kommerzielle SSL-Zertifikatanbieter =====
 
===== Kommerzielle SSL-Zertifikatanbieter =====
Zeile 77: Zeile 80:
 
* [http://www.dmsolutions.de/ssl.html dmsolutions], Zertifikate verschiedener Anbieter ab 20 € p.a., u.a. RapidSSL
 
* [http://www.dmsolutions.de/ssl.html dmsolutions], Zertifikate verschiedener Anbieter ab 20 € p.a., u.a. RapidSSL
 
* HostEurope, Zertifikate ab 30 € p.a.
 
* HostEurope, Zertifikate ab 30 € p.a.
 +
 +
===== Importieren nach Android =====
 +
[https://coderwall.com/p/wv6fpq/add-self-signed-ssl-certificate-to-android-for-browsing selbst signierte Zertifikate können über einen Umweg auch ins Android-System importiert werden].
 +
 +
 +
Dabei muss beachtet werden, dass in das Android-System nicht das selbst erstellte Zertifikat selbst, sondern ein sich selbst authentifizierendes CA-Zertifikat importiert werden kann. Dazu muss CA=TRUE gesetzt werden, siehe https://aboutssl.org/how-to-create-and-import-self-signed-certificate-to-android-device/ .
  
 
===== Bugs in SSL =====
 
===== Bugs in SSL =====
Zeile 115: Zeile 124:
 
* https://www.netnea.com/cms/apache-tutorial-9-reverse-proxy-einrichten/
 
* https://www.netnea.com/cms/apache-tutorial-9-reverse-proxy-einrichten/
 
* https://thomas-leister.de/internet/apache-reverse-proxy-mit-ssl-support-einrichten/
 
* https://thomas-leister.de/internet/apache-reverse-proxy-mit-ssl-support-einrichten/
 
+
===== Alternative Reverse Proxies =====
-----
+
Siehe
 +
* [[nginx]]
 +
* [https://github.com/OptimalBits/redbird/blob/master/README.md Redbird - ein Reverse Proxy auf Node.js-Basis]
 +
* [https://www.npmjs.com/package/http-proxy HTTP-Proxy - ein Reverse Proxy auf Node.js-Basis]
 +
------
 
<references/>
 
<references/>
 
[[Category:Internet]]
 
[[Category:Internet]]

Aktuelle Version vom 6. Januar 2021, 08:13 Uhr


Allgemeines

Siehe Einteilung der Zertifikate

SSL-Zertifikate

Allgemeines

SSL-Zertifikate enthalten den öffentliche Komponente eines Schlüssels sowie den Namen und sonstige Details des Schlüsseleigentümers und ggf. den Namen der Zertifizierungsstelle (CA). SSL-Zertifikate werden regelmäßig von der Zertifizierungsstelle signiert. Im Ausnahmefall kann man ein Zertifikat auch selbst signieren (mit dem privaten Teil seines Schlüssels).


Siehe Einteilung der Zertifikate

SSL überprüfen

Mit den ssllabs lässt sich die SSL-Konfiguration eines Webservers kostenlos überprüfen. Tipps, um es besser zu machen, erhält man bei sslmarket.de.

Selbstsigniertes Zertifikat erstellen
 openssl req -new -x509 -nodes -out server.crt -keyout server.key

Der private Schlüssel server.key kann nach /etc/ssl/private und das Zertifikat mit dem öffentlichen Schlüssel server.crt kann nach /etc/ssl/certs kopiert werden

localhost mit https-Zertifikaten

Das Google-Tool MkCert errichtet auf dem lokalen Rechner eine private Certification Authority (CA). Diese kann mit mkcert erstellte eigene Zertifikate (z.B. für https-Verbindung zu localhost) als vertrauenswürdig einstufen.

Apache2 konfigurieren

Mit

 a2enmod ssl

das SSL-Modul von Apache2 aktivieren


Einen VirtualHost (/etc/apache2/sites-available/...) mit *:443 statt *:80 einrichten und folgende Direktiven einfügen:

SSLEngine             on
SSLCertificateFile    /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Eventuell ein NameVirtualServer *:443 in /etc/apache2/ports.conf einfügen.

Links überprüfen

Die Links auf die Seite und auch innerhalb sollten nun mit https:// beginnen und nicht mehr mit http://. Das gilt auch für Referer. In MediaWiki ist in der /var/lib/mediawiki/LocalSettings.php $wgServer auf "https://www.myserver.de" zu setzen.

Certificate Signing Request

Eine CSR-Datei, deren Inhalt man an eine Certificate Authority wie startssl verschickt, um dem Zertifikat vertrauen zu lassen, erstellt man folgendermaßen:

 export DOMAIN="BEISPIEL.de"
 openssl genrsa -out ${DOMAIN}.de.key 2048 # privaten und öffentlichen Schlüssel erzeugen
 openssl req -new -key ${DOMAIN}.key -out ${DOMAIN}.csr # CSR erzeugen
 cat ${DOMAIN}.csr # CSR anzeigen lassen (für Copy & Paste)
Kostenlose offizielle Zertifikate

Der Standardanbieter für kostenlose offizielle Zertifikate ist Letsencrypt. Dessen Standardtool heißt certbot und nutzt das ACME-Protokoll.

Es gibt verschiedene Wege des Nachweises der Berechtigung im Ausstellungsprozess.

Kommerzielle SSL-Zertifikatanbieter
  • LeaderSSL, Zertifikate ab 14 € p.a.
  • dmsolutions, Zertifikate verschiedener Anbieter ab 20 € p.a., u.a. RapidSSL
  • HostEurope, Zertifikate ab 30 € p.a.
Importieren nach Android

selbst signierte Zertifikate können über einen Umweg auch ins Android-System importiert werden.


Dabei muss beachtet werden, dass in das Android-System nicht das selbst erstellte Zertifikat selbst, sondern ein sich selbst authentifizierendes CA-Zertifikat importiert werden kann. Dazu muss CA=TRUE gesetzt werden, siehe https://aboutssl.org/how-to-create-and-import-self-signed-certificate-to-android-device/ .

Bugs in SSL

Laut FM4 stammt der "Heartbleed"-Bug u.a. in der OpenSSL-Software wohl aus der Feder von der NSA nahestehenden Kreisen.

Weiterführendes

Siehe

Siehe auch Linux-Tipps#SSL

Apache als Reverse Proxy

Ein Reverse Proxy ist ein Server, der Anfragen an einen anderen Server weiterleitet und dessen Antworten an den Client weitergibt, ohne dass dieser merkt, dass hinter dem Reverse Proxy noch ein anderer Server sitzt, der die Daten liefert.

Ein Anwendungsbeispiel ist z.B. die Datenbank CouchDB, die standardmäßig auf dem Port 5984 läuft, hinter einem Apache zu verstecken.

Dazu müssen die Module proxy und proxy_http installiert sein:

 sudo a2enmod proxy
 sudo a2enmod proxy_http
 sudo service apache2 restart

In der virtuellen Server-Definition in /etc/apache2/sites-available müssen dann folgende Direktiven eingefügt werden:

 ProxyPass /couchdb/ http://localhost:5984/
 ProxyPassReverse /couchdb/ http://localhost:5984/


Siehe zu Apache als Reverse Proxy auch

Alternative Reverse Proxies

Siehe