Generierung von self-signed Zertifikaten für die Verwendung in Apple iOS
Apple hat besondere Anforderungen an Zertifikate für iOS/MacOS (nachzulesen hier), die Kurzfassung:
- Key size >= 2048
- Zertifikatsgültigkeit <= 825 Tage
- nicht mit SHA-1 signiert
- FQDN muss in der Erweiterung
Subject Alternative Name
stehen - Zertifikat muss die Eigenschaft
ExtendedKeyUsage
mit dem WertserverAuth
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