de:server:services:ssl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:server:services:ssl [2023/01/07 07:29] – [ssl-params.conf] added the actual code dande:server:services:ssl [2024/05/11 22:09] (current) – [Arch Linux] deleted sudo to be consistent with other tutorials dan
Line 5: Line 5:
 Dieses Tutorial basiert auf der Domain ''nextcloud.home''. Ändere die Domain daher in deine eigene Domain, wenn du was anderes brauchst. Dieses Tutorial basiert auf der Domain ''nextcloud.home''. Ändere die Domain daher in deine eigene Domain, wenn du was anderes brauchst.
  
-Es ist auch wichtig, dass die Domain-Adresse von deinem Router umgeleitet wird. Dies kann auch in der Datei ''/etc/hosts'' auf deinem Computer eingestellt werden, aber um die Domain auf jedem Gerät zu erreichen, ist es einfacher, dies direkt im Router zu ändern:+Es ist auch wichtig, dass die Domain-Adresse von deinem Router umgeleitet wird oder mit [[/de/server/services/adguardhome#dns_rewrites|AdGuardHome]]. Dies kann auch in der Datei ''/etc/hosts'' auf deinem Computer eingestellt werden, aber um die Domain auf jedem Gerät zu erreichen, ist es einfacher, dies direkt im Router oder [[/de/server/services/adguardhome#dns_rewrites|AdGuardHome]] zu ändern:
  
 <code> <code>
Line 12: Line 12:
  
  
-===== Generierung des privaten Schlüssels und des Root Zertifikats =====+===== mkcert ===== 
 + 
 +[[https://github.com/FiloSottile/mkcert|mkcert]] ist ein einfaches Werkzeug zur Erstellung von lokal vertrauenswürdigen Entwicklungszertifikaten. Es erfordert keine Konfiguration. 
 + 
 + 
 +==== Packete ====
  
 <code> <code>
-openssl genrsa -des3 -out myCA.key 2048+pacman -S nss mkcert
 </code> </code>
 +
 +
 +==== Root-Zertifikat erstellen ====
  
 <code> <code>
-openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem+mkcert -install
 </code> </code>
  
-Ändere die folgenden Informationen nach deinen Wünschen. Die Infos werden z.B. angezeigt, wenn du das Zertifikat über deinen Browser ansiehst.+ 
 +==== Zertifikate für Ihre Domains erstellen ==== 
 <code> <code>
-Country Name (2 letter code) [AU]: +mkcert nextcloud.home
-State or Province Name (full name) [Some-State]: +
-Locality Name (eg, city) []: +
-Organization Name (eg, company) [Internet Widgits Pty Ltd]: +
-Organizational Unit Name (eg, section) []: +
-Common Name (e.g. server FQDN or YOUR name) []: +
-Email Address []:+
 </code> </code>
  
  
-===== Installation des Root-Zertifikats auf allen Geräten =====+===== Manuell =====
  
-Du musst auf jedem Gerät eine ''myCA.pem''-Datei erstellen und den Inhalt der Datei ''myCA.pem'' dorthin kopieren, wo du sie in Abschnitt [[#generierung_des_privaten_schluessels_und_des_root_zertifikats]] erstellt hast. 
  
 +==== Generierung des privaten Schlüssels und des Root Zertifikats ====
  
-==== Arch Linux ====+<code> 
 +openssl genrsa -des3 -out rootCA.key 2048 
 +</code>
  
 <code> <code>
-sudo trust anchor --store myCA.pem+openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1825 -out rootCA.pem
 </code> </code>
  
 +Ändere die folgenden Informationen nach deinen Wünschen. Die Infos werden z.B. angezeigt, wenn du das Zertifikat über deinen Browser ansiehst.
  
-==== Android ==== +<code> 
- +Country Name (2 letter code) [AU]: 
-''Settings'' ''Security'' - ''Encryption and credentials'' - ''Install a certificate'' +State or Province Name (full name) [Some-State]: 
- +Locality Name (eg, city) []: 
-Check under+Organization Name (eg, company) [Internet Widgits Pty Ltd]
- +Organizational Unit Name (eg, section) []: 
-''Settings'' - ''Security'' - ''Trusted credentials'' - ''User''+Common Name (e.g. server FQDN or YOUR name) []: 
 +Email Address []: 
 +</code>
  
  
-===== Erstellung von CA-signierten Zertifikaten für deine Domains =====+==== Erstellung von CA-signierten Zertifikaten für deine Domains ====
  
 <code> <code>
-openssl genrsa -out domain.home.key 2048+openssl genrsa -out nextcloud.home-key.pem 2048
 </code> </code>
  
 <code> <code>
-openssl req -new -key DOMAIN.home.key -out DOMAIN.home.csr+openssl req -new -key nextcloud.home-key.pem -out nextcloud.home.pem
 </code> </code>
  
 <code> <code>
-nano DOMAIN.home.ext+nano nextcloud.home.ext
 </code> </code>
  
Line 76: Line 85:
  
 [alt_names] [alt_names]
-DNS.1 = DOMAIN.home+DNS.1 = nextcloud.home
 </code> </code>
  
  
-==== Script ====+=== Script ===
  
 Erstelle die Datei in ''nano /etc/nginx/ssl/ssl.sh''. Erstelle die Datei in ''nano /etc/nginx/ssl/ssl.sh''.
Line 95: Line 104:
 DOMAIN=$1 DOMAIN=$1
  
-openssl genrsa -out $DOMAIN.key 2048 +openssl genrsa -out $DOMAIN-key.pem 2048 
-openssl req -new -key $DOMAIN.key -out $DOMAIN.csr+openssl req -new -key $DOMAIN-key.pem -out $DOMAIN.pem
  
 cat > $DOMAIN.ext << EOF cat > $DOMAIN.ext << EOF
Line 107: Line 116:
 EOF EOF
  
-openssl x509 -req -in $DOMAIN.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \+openssl x509 -req -in $DOMAIN.pem -CA rootCA.pem -CAkey rootCA.key -CAcreateserial \
 -out $DOMAIN.crt -days 825 -sha256 -extfile $DOMAIN.ext -out $DOMAIN.crt -days 825 -sha256 -extfile $DOMAIN.ext
 </code> </code>
Line 113: Line 122:
 <code> <code>
 chmod +x ssl.sh chmod +x ssl.sh
-./ssl.sh domain.home+./ssl.sh nextcloud.home
 </code> </code>
  
 +
 +===== Installation des Root-Zertifikats auf allen Geräten =====
 +
 +Du musst auf jedem Gerät eine ''rootCA.pem''-Datei erstellen und den Inhalt der Datei ''rootCA.pem'' dorthin kopieren, wo du sie in Abschnitt [[#generierung_des_privaten_schluessels_und_des_root_zertifikats]] (manuell) erstellt hast.
 +
 +Wenn du [[#mkcert]] benutzt hast, führe einfach den Befehl ''cat $(mkcert -CAROOT)/rootCA.pem'' aus.
 +
 +
 +==== Arch Linux ====
 +
 +<code>
 +trust anchor --store rootCA.pem
 +</code>
 +
 +
 +==== Android ====
 +
 +
 +=== User trusted credentials ===
 +
 +''Settings'' - ''Security'' - ''Encryption and credentials'' - ''Install a certificate''
 +
 +Check unter:
 +
 +''Settings'' - ''Security'' - ''Trusted credentials'' - ''User''
 +
 +
 +=== System trusted credentials ===
 +
 +Wenn "User trusted credentials" nicht ausreicht und du das Zertifikat im System brauchst, befolge die nächsten Zeilen. Dazu ist allerdings ein gerootetes Gerät erforderlich:
 +
 +<code>
 +hashed_name=`openssl x509 -inform PEM -subject_hash_old -in rootCA.pem | head -1` && cp rootCA.pem $hashed_name.0
 +ls $hashed_name.0
 +</code>
 +
 +<code>
 +adb root
 +adb shell mount -o rw,remount /
 +adb push $hashed_name.0 /system/etc/security/cacerts/
 +adb shell chmod 644 /system/etc/security/cacerts/$hashed_name.0
 +adb shell chown root:root /system/etc/security/cacerts/$hashed_name.0
 +adb shell reboot
 +</code>
 +
 +Du kannst auch die Magisk-Module [[https://github.com/NVISOsecurity/MagiskTrustUserCerts/releases|MagiskTrustUserCerts]] (Android 13) oder [[https://github.com/nccgroup/ConscryptTrustUserCerts|ConscryptTrustUserCerts]] (Android 14) verwenden, dass das gleiche wie oben macht.
 +
 +
 +=== CA-Zertifikate von Drittanbietern für Firefox verwenden ===
 +
 +Du kannst auch die Option ''Use third party CA certificates'' für den Firefox-Browser wählen:
 +
 +  - Öffne deinen Browser, scrolle nach unten und klicke auf Über firefox/iceraven/mull ...
 +  - Klick mehrmals auf das Logo und gehe zurück 
 +  - Klicke auf Geheime Einstellungen und aktiviere ''Use third party CA certificates''
  
 ===== Nginx ===== ===== Nginx =====
Line 135: Line 199:
 ssl_session_cache shared:SSL:10m; ssl_session_cache shared:SSL:10m;
 </code> </code>
 +
 +
 ==== example ==== ==== example ====
  
Line 152: Line 218:
         server_name nextcloud.home;         server_name nextcloud.home;
  
-        ssl_certificate /etc/nginx/ssl/nextcloud.home.crt+        ssl_certificate /etc/nginx/ssl/nextcloud.home.pem
-        ssl_certificate_key /etc/nginx/ssl/nextcloud.home.key;+        ssl_certificate_key /etc/nginx/ssl/nextcloud.home-key.pem;
         include conf.d/ssl-params.conf;         include conf.d/ssl-params.conf;
          
  • de/server/services/ssl.1673076549.txt.gz
  • Last modified: 2023/01/07 07:29
  • by dan