Generierung von self-signed Zertifikaten für die Verwendung in Apple iOS

Aus Laub-Home Wiki

Apple hat besondere Anforderungen an Zertifikate für iOS/MacOS (nachzulesen hier), die Kurzfassung:

  1. Key size >= 2048
  2. Zertifikatsgültigkeit <= 825 Tage
  3. nicht mit SHA-1 signiert
  4. FQDN muss in der Erweiterung Subject Alternative Name stehen
  5. Zertifikat muss die Eigenschaft ExtendedKeyUsage mit dem Wert serverAuth enthalten


  • Voraussetzung: openssl ist installiert
apt install openssl
  • Temporäres Arbeitsverzeichnis anlegen
mkdir ~/cert
cd ~/cert
  • Die Standard openssl Konfigurationsdatei als Grundlage nehmen
cp /etc/ssl/openssl.cnf cert.cnf
vi cert.cnf
  • In der neu erstellten Datei den Abschnitt bzgl. v3_ca finden ...
[ v3_ca ]


# Extensions for a typical CA
  • ... und folgende zwei Zeilen mit der zu verwendeten FQDN hinzufügen (serverFQDN.local entsprechend ersetzen):
subjectAltName = DNS:serverFQDN.local
extendedKeyUsage = serverAuth
  • ... in der Datei nun nach folgendem Kommentar suchen
# Extension copying option: use with caution.
  • ... und folgende Zeile hinzufügen
copy_extensions = copy
  • Die Datei speichern und openssl ausführen (serverFQDN.local entsprechend ersetzen):
openssl req -x509 -nodes -days 824 -newkey rsa:2048 -config cert.cnf -keyout serverFQDN.local.key -out serverFQDN.local.crt
  • sowie die Abfragen entsprechend beantworten, wichtig ist vor allem der "Common Name" (serverFQDN.local entsprechend ersetzen):
Country Name (2 letter code) [XX]:DE
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:serverFQDN.local
Email Address []:
  • Abschließend prüfen, ob das generierte Zertifikate die passenden Einträge hat...
openssl x509 -text -in serverFQDN.local.crt -noout
  • ... da folgende Zeilen vorhanden sein müssen:
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                DNS:serverFQDN.local
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication


Quelle: https://7402.org/blog/2019/new-self-signed-ssl-cert-ios-13.html