Bearbeiten von „Aufsetzen des Apache-Servers“
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird öffentlich sichtbar, falls du Bearbeitungen durchführst. Sofern du dich anmeldest oder ein Benutzerkonto erstellst, werden deine Bearbeitungen zusammen mit anderen Beiträgen deinem Benutzernamen zugeordnet.
Die Bearbeitung kann rückgängig gemacht werden.
Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.
Aktuelle Version | Dein Text | ||
Zeile 122: | Zeile 122: | ||
Der Key trägt den Namen “rootCA.pem” und hat eine Länge von 4096 Bit. Die Option “-aes256” führt dazu, dass der Key mit einem Passwort geschützt wird. Die Key-Datei der CA muss tatsächlich besonders gut geschützt werden. Ein Angreifer, der den Key in die Hände bekommt, kann beliebig gefälschte Zertifikate im Namen der Kanzlei ausstellen, denen die Clients trauen. Die Verschlüsselung dieses Keys mit einem Passwort gibt zusätzlichen Schutz. Das gewünschte Passwort wird bei der Generierung abgefragt. | Der Key trägt den Namen “rootCA.pem” und hat eine Länge von 4096 Bit. Die Option “-aes256” führt dazu, dass der Key mit einem Passwort geschützt wird. Die Key-Datei der CA muss tatsächlich besonders gut geschützt werden. Ein Angreifer, der den Key in die Hände bekommt, kann beliebig gefälschte Zertifikate im Namen der Kanzlei ausstellen, denen die Clients trauen. Die Verschlüsselung dieses Keys mit einem Passwort gibt zusätzlichen Schutz. Das gewünschte Passwort wird bei der Generierung abgefragt. | ||
Einen geheimen Key für die CA gibt es damit also schon - es fehlt noch das Root-Zertifikat, das von den Clients später importiert werden muss, damit die von der CA ausgestellten Zertifikate im Browser als gültig erkannt werden. Das Root-Zertifikat “ca-root.pem” wird mit folgendem Befehl erzeugt: | Einen geheimen Key für die CA gibt es damit also schon - es fehlt noch das Root-Zertifikat, das von den Clients später importiert werden muss, damit die von der CA ausgestellten Zertifikate im Browser als gültig erkannt werden. Das Root-Zertifikat “ca-root.pem” wird mit folgendem Befehl erzeugt: | ||
− | {{Shell |> sudo openssl req -x509 -new -nodes -key /etc/ssl/private/rootCA.key -sha512 -days | + | {{Shell |> sudo openssl req -x509 -new -nodes -key /etc/ssl/private/rootCA.key -sha512 -days 5478 -out /etc/ssl/certs/rootCA.pem}} |
− | In diesem Fall wird die CA | + | In diesem Fall wird die CA 5478 Tage, also 15 Jahre lang gültig bleiben. Während der Generierung werden das Passwort für die CA und einige Attribute abgefragt (hier ein Beispiel): |
Country Name (2 letter code) [AU]:<b>DE</b> | Country Name (2 letter code) [AU]:<b>DE</b> | ||
State or Province Name (full name) [Some-State]:<b>Nordrhein-Westfalen</b> | State or Province Name (full name) [Some-State]:<b>Nordrhein-Westfalen</b> | ||
Zeile 133: | Zeile 133: | ||
===Erzeugen des Schlüssels=== | ===Erzeugen des Schlüssels=== | ||
− | Mit diesen Daten wird auch eine | + | Mit diesen Daten wird auch eine Konfigratunsdatei mit Namen <tt>ssl.cnf</tt> befüllt, die die Schlüsselausgabe später vereinfacht. |
{{Shell |> cd ~/bin<br> mkdir keys<br> cd keys<br> kate ssl.cnf}} | {{Shell |> cd ~/bin<br> mkdir keys<br> cd keys<br> kate ssl.cnf}} | ||
Die Datei kann beispielsweise den folgenden Inhalt haben | Die Datei kann beispielsweise den folgenden Inhalt haben | ||
[req] | [req] | ||
− | # | + | # standard-verschlüsselung |
default_bits = 4096 | default_bits = 4096 | ||
# verhindere prompt für die Zertifikat-Erstellung | # verhindere prompt für die Zertifikat-Erstellung | ||
# (Daten kommen aus dieser Datei) | # (Daten kommen aus dieser Datei) | ||
prompt = no | prompt = no | ||
− | # | + | # verschlüsselungs-methode |
default_md = sha512 | default_md = sha512 | ||
− | # | + | # prevent key encryption |
encrypt_key = no | encrypt_key = no | ||
# Sektion für Zertifizierer-Informationen: | # Sektion für Zertifizierer-Informationen: | ||
distinguished_name = dn | distinguished_name = dn | ||
− | |||
# Zertifizierer-Informationen: | # Zertifizierer-Informationen: | ||
[dn] | [dn] | ||
Zeile 161: | Zeile 160: | ||
# Aussteller Name | # Aussteller Name | ||
OU=RA Matthias Hermanns | OU=RA Matthias Hermanns | ||
− | # E-Mail | + | # E-Mail Addresse |
emailAddress=hermanns@iustus.eu | emailAddress=hermanns@iustus.eu | ||
− | # | + | # primärer server-name |
− | CN = <b>k1</b> | + | CN = <b>k1.local</b> |
− | |||
[v3_ca] | [v3_ca] | ||
keyUsage = digitalSignature, keyEncipherment | keyUsage = digitalSignature, keyEncipherment | ||
extendedKeyUsage = serverAuth | extendedKeyUsage = serverAuth | ||
subjectAltName = IP:<b>192.168.2.10</b>, DNS:<b>k1</b>, DNS:<b>k1.local</b> | subjectAltName = IP:<b>192.168.2.10</b>, DNS:<b>k1</b>, DNS:<b>k1.local</b> | ||
− | |||
− | |||
− | |||
− | |||
[alt_names] | [alt_names] | ||
− | # | + | # primärer server-name |
− | DNS.1 = <b>k1</b> | + | DNS.1=<b>k1</b> |
− | # | + | # sekunärer server-name |
− | DNS.2 = <b>k1.local</b> | + | DNS.2=<b>k1.local</b> |
− | # | + | # wildcard subdomains |
− | DNS.3 = *. | + | DNS.3 = *.k1.local |
− | Speichern Sie die so erstellte Datei <tt>ssl.cnf</tt> im <tt>bin</tt>-Verzeichnis ab. Mit folgendem Befehl erzeugen Sie nun als zertifizierter Aussteller die eigentlichen Schlüssel für die SSL-Verbindung | + | Speichern Sie die so erstellte Datei <tt>ssl.cnf</tt> im <tt>bin</tt>-Verzeichnis ab. Mit folgendem Befehl erzeugen Sie nun als zertifizierter Aussteller die eigentlichen Schlüssel für die SSL-Verbindung: |
− | |||
− | |||
− | |||
{{Shell |> openssl req -new -keyout ~/bin/keys/k1.key -out ~/bin/keys/k1.csr -config ~/bin/keys/ssl.cnf}} | {{Shell |> openssl req -new -keyout ~/bin/keys/k1.key -out ~/bin/keys/k1.csr -config ~/bin/keys/ssl.cnf}} | ||
− | |||
− | |||
− | + | {{Shell |> <br> sudo openssl x509 -req \<br> -in ~/bin/keys/k1.csr \<br> -CA /etc/ssl/certs/rootCA.pem \<br> -CAkey /etc/ssl/private/rootCA.key \<br> -CAcreateserial \<br> -out ~/bin/keys/k1.crt \<br> -days 3650 \<br> -extfile ~/bin/keys/ssl.cnf \<br> -extensions v3_ca}} | |
− | {{Shell |> sudo | ||
=== Verbindung mit dem Server === | === Verbindung mit dem Server === | ||
Zeile 197: | Zeile 185: | ||
folgende Zeilen: | folgende Zeilen: | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
− | ServerName <b>k1</b> | + | ServerName <b>k1.local</b> |
− | ServerAlias <b>k1.local</b> | + | ServerAlias www.<b>k1.local</b> |
</VirtualHost> | </VirtualHost> | ||
− | |||
<IfModule mod_ssl.c> | <IfModule mod_ssl.c> | ||
<VirtualHost *:443> | <VirtualHost *:443> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
DocumentRoot /home/BENUTZERNAME/lawsuit/ | DocumentRoot /home/BENUTZERNAME/lawsuit/ | ||
− | ServerName <b>k1</b> | + | ServerName <b>k1.local</b> |
− | ServerAlias <b>k1.local</b> | + | ServerAlias www.<b>k1.local</b> |
ErrorLog /var/log/apache2/error_log | ErrorLog /var/log/apache2/error_log | ||
SSLEngine on | SSLEngine on | ||
Zeile 214: | Zeile 201: | ||
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" | ||
</IfModule> | </IfModule> | ||
− | <FilesMatch "\.(cgi | + | <FilesMatch "\.(cgi|shtml|phtml|php)$"> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars | ||
</FilesMatch> | </FilesMatch> | ||
− | <Directory / | + | <Directory /usr/lib/cgi-bin> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars | ||
</Directory> | </Directory> | ||
</VirtualHost> | </VirtualHost> | ||
</IfModule> | </IfModule> | ||
− | |||
# configuration | # configuration | ||
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2 | SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2 | ||
SSLHonorCipherOrder off | SSLHonorCipherOrder off | ||
SSLSessionTickets off | SSLSessionTickets off | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Unter Firefox kann das selbstgezeichnete Zertifikat nun verwendet werden. Bitte beachten Sie, dass für jede Apache-Konfigurrationsdatei ein anderer Port geöffnet werden muss, "443" also nur einmal verwendet werden kann. Sie können alternativ z.B. "4443" verwenden. | Unter Firefox kann das selbstgezeichnete Zertifikat nun verwendet werden. Bitte beachten Sie, dass für jede Apache-Konfigurrationsdatei ein anderer Port geöffnet werden muss, "443" also nur einmal verwendet werden kann. Sie können alternativ z.B. "4443" verwenden. |