S / MIME für Mac und iOS

708
Nifle

Ich habe versucht, S / MIME-Zertifikate für meine MacOS- und iOS-Geräte zu generieren, und es scheint nicht zu funktionieren. Ich habe zu diesem Thema recherchiert und es scheint, dass keyUsage und extendedKeyUsage benötigt werden, damit es funktioniert.

Diese müssen in die Datei openssl.cnf
[usr_cert]
eingegeben werden. KeyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection
subjectAltName = email: move

Ich habe diese drei Zeilen in [usr_cert]von/System/Library/OpenSSL/openssl.cnf

Wie in [CA_Default] wird x509_extensions = usr_cert angegeben

Von dort erteile ich die folgenden Befehle

openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
openssl genrsa -aes256 -out cert.key 4096
openssl req -new -key cert.key -out cert.csr openssl
x509 -req -days 365 -in cert.csr -CA ca.crt -CAkey ca.key -set_serial 00 -out cert.crt
openssl pkcs12 -export -in cert.crt -inkey cert.key -name “ email@address.com ”-out cert.p12

Danach erhalte ich die CA-Zertifikate und S / MIME-Zertifikate. Wenn ich jedoch nachprüfe, ob die keyUsage- und KeyUsage-Erweiterungen vorhanden sind, erhalten Sie Folgendes:

openssl x509 -text -noout -in cert.crt

Sie sind nicht da.

Ich bearbeite die Standarddatei openssl.cnf

Vielen Dank für Ihre Hilfe

1

1 Antwort auf die Frage

0
dave_thompson_085

Meta: Dies ist OpenSSL, jedoch nicht speziell für Mac. Die meisten Dinge, für die OpenSSL verwendet wird, beziehen sich auf die Sicherheit. Ich würde vorschlagen, openssl zu markieren.

Viele der Einstellungen in der OpenSSL - Konfigurationsdatei, die standardmäßig auf eine plattformabhängigen Position wie die, die Sie angeben, aber außer Kraft gesetzt werden können, die standardmäßig verwendet werden, nur durch das reqund caDienstprogramme, von denen die letztere gerade erstellt wurde, ein minimaler CA sein und Zertifikate ausstellen. Die x509Hauptaufgabe des Dienstprogramms besteht darin, Zertifikate anzuzeigen, zu untersuchen und zu konvertieren. Das Ausstellen eines Zertifikats x509 -req -CA [-CAkey]ist ein Add-On, das nicht alle Funktionen cahat. Insbesondere werden nur Erweiterungen hinzugefügt, wenn Sie dies in der Befehlszeile angeben, nicht in der Konfigurationsdatei. (Und es kann keine Erweiterungen aus der CSR übertragen, obwohl dies für Sie kein Problem zu sein scheint.)

Lösungen: Verwenden Sie diese caOption mit den gewünschten Einstellungen in der Konfigurationsdatei oder x509 -req -CA [-CAkey]mit dem -extfile [-extensions]Zeigen auf eine Datei oder einen Abschnitt einer Datei mit den gewünschten Erweiterungen - möglicherweise aber nicht notwendigerweise die Standard-Konfigurationsdatei.

Außerdem: 365 Tage sind für ein CA-Zertifikat eine recht kurze Lebensdauer. Ich denke, Sie möchten SAN email:copystatt, moveweil das SMIME-Zertifikat, das ich persönlich verwendet habe (Testversion von Comodo), meine E-Mails sowohl im Betreff als auch im SAN enthält. Sie brauchen wahrscheinlich nicht nonRepudiationin (grundlegende) KU; Mein Zeugnis hat es nicht, und im Allgemeinen war die Idee, dass Publickey-Signaturen Nicht-Ablehnung unterstützen könnten, in den 1980er Jahren populär, aber in der Praxis hat es fast nie funktioniert, also haben die Leute es ziemlich aufgegeben. OTOH Ich bezweifle, dass es irgendetwas tun wird.

https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt hat ein paar Dinge zu NonRepudiation und E-Mail zu sagen: Kopie vs E-Mail: Verschieben. grawity vor 9 Jahren 0