Einrichtung eines SSL Zertifikats

Geändert am Mo, 16 Dez um 9:53 VORMITTAGS


Du benötigst Zugriff per SSH auf den Server um die folgenden Schritte durchzuführen. 
Dies ist eine Anleitung für die Kunden IT

 


Dieser Teil ist für die erstmalige Einrichtung eines SSL Zertifikats. Wenn du dein Zertifikat erneuern möchten, scroll bitte zu dem zweiten Teil der Anleitung. 


Bitte ersetze die rot markierten Abschnitte mit deinen Daten. 


Erstellung eines Certificate Signing Request (CSR)

Für die Einrichtung von SSL werden root-Berechtigungen benötigt. Statt vim kann auch z.B. der einsteigerfreundlichere Editor "nano" verwendet werden.


1. Erstellung eines private Key

cd /etc/ssl/private
openssl genrsa -out fqdn.key.pem 2048

Bitte ersetze den rot markierten Teil mit dem FQDN deines Q.wiki. Beispielsweise: qwiki.acme.local


2. Anlegen des CSR

vim fqdn.csr.conf

In diese Datei Folgendes einfügen (bitte ändere die rot markierten Abschnitte mit deinen Daten ab):

[req] distinguished_name = req_distinguished_name 
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = DE
ST = NRW
L = AACHEN
O = Modell Aachen GmbH
OU = IT-Services
CN = QWIKI-ALIAS.ACME.LOCAL (die URL, über die Q.wiki im Browser aufgerufen wird)
emailAddress = [email protected]
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = QWIKI-ALIAS.ACME.LOCAL
DNS.2 = qwikiserver.acme.local (fqdn des servers)

Nach dem Speichern kann der CSR mit folgenden Befehl erstellt werden: 

openssl req -new -out fqdn.csr -key fqdn.key.pem -config fqdn.csr.conf

Durch den Befehl wird eine Datei fqdn.csr im aktuellen Verzeichnis erstellt. Diese kann per SCP heruntergeladen werden. Alternativ kann der Inhalt auch kopiert und in eine "fqdn.csr" auf einem Windows-Rechner eingefügt werden. Mit dem CSR kann in deinem CA ein neues Zertifikat angefordert werden.



Einrichten oder aktualisieren eines SSL Zertifikats


1. Zertifikat und eventuell Key auf den Q.wiki Server in /etc/ssl/private ablegen. Alle weiteren Schritte, sofern nicht anders angegeben, werden in diesem Verzeichnis durchgeführt. 

2. Format prüfen. 

Es wird ein RSA Key (ohne Passwort - falls Passwort vorhanden siehst du in Schritt 3), sowie ein base64 kodiertes X509 Zertifikat benötigt. DER und PKCS#12 müssen konvertiert werden. 


DER konvertieren

openssl x509 -inform der -in fqdn.xyz -out fqdn.cert.pem 

PKCS#12 konvertieren

Private Key extrahieren

openssl pkcs12 -in fqdn.pfx -nocerts -nodes -out fqdn.key.pem 

Zertifikat extrahieren

openssl pkcs12 -in fqdn.pfx -clcerts -nokeys -out fqdn.cert.pem


3. Private Key überprüfen

openssl rsa -noout -in fqdn.key.pem

Sollte eine Passwortabfrage kommen, muss diese entfernt werden, da das Passwort ansonsten bei jedem Webserver Neustart manuell eingegeben werden muss. 


4. Dateiberechtigung anpassen

chown root:root fqdn.* 
chmod 0600 fqdn.*

Solltest du nur eine Aktualisierung des Zertifikats vorgenommen haben, kannst du zu Punkt 7 springen. 


5. Bearbeitung der nginx Konfiguration. (nur bei Ersteinrichtung von SSL nötig, oder wenn die Dateinamen des Zertifikats verändert wurden) 

vim /etc/nginx/sites-enabled/qwiki_http.conf


Die vorhandene Konfiguration muss gelöscht werden und mit folgender angepasster Konfiguration ersetzt werden. 

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name qwiki_http;
    rewrite ^/(.*)$ https://qwiki.acme.local/$1 permanent;
}

server {
    listen 443 default_server ssl;
    listen [::]:443 default_server ssl;

    server_name qwiki_https;

    root /var/www/qwikis/core;

    ssl_certificate /etc/ssl/private/CERT;
    ssl_certificate_key /etc/ssl/private/KEY;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location ~ (/pub/System|/robots.txt) {
    sendfile on;
    tcp_nopush on;
    expires 7d;
    add_header Cache-Control "public, no-transform";
}

location /api/phoenix {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://elixir;
    }

location / {
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://qwiki;
}
}

6. Anpassung der Q.wiki Konfigurationsdatei (nur bei Ersteinrichtung von SSL nötig)

vim /var/www/qwiki/core/lib/LocalSite.cfg

In dieser Datei nach dem Q.wiki Hosteintrag "DefaultUrlHost" suchen, und zu dem Ergebnis mit der fqdn deines Systems springen. 

Hier muss das 'http' durch ein 'https' ersetzt / erweitert werden. 

Danach die Datei speichern und die Services neustarten (punkt 7).


7. Neustarten der Services

a2enmod ssl
systemctl restart nginx qwiki



Aktualisieren eines SSL Zertifikats ab Version 6.8


1. Aufrufen der Q.wiki qmmander Shell

qmmander

2. Q.wiki Konfiguration aufrufen


3. Pfad des Zertifikates und Key auf den neuen anpassen oder alte Zertifikate überschreiben - wir legen Zertifikat und Key üblicherweise unter /root/qwiki/ ab.

ABSOLUTE_TLS_CRT_PATH: [/path/to/your/cert]
ABSOLUTE_TLS_KEY_PATH: [/path/to/your/key]

4. Q.wiki Konfiguration aktualisieren

qmmander
Schritt 10) Update certificate

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren