Nicht möglich.
PEM-Dateien können im Allgemeinen mehrere "Objekte" enthalten. Die meisten OpenSSL-Befehlszeilenoperationen, einschließlich dieser, verwenden jedoch nur den ersten Typ des gewünschten Typs - den ersten Schlüssel in einer Schlüsseldatei, das erste Zertifikat in einer Zertifizierungsdatei. usw. Insbesondere wenn Sie sowohl einen privaten Schlüssel als smime -sign
auch ein Zertifikat benötigen, können Sie sowohl den (ersten) Schlüssel als auch das (erste) Zertifikat aus einer einzigen Datei lesen. Bei einigen Operationen oder Optionen werden alle Zertifikate in einer Datei verwendet, aber selbst dort können Sie keine andere als die erste auswählen.
Eine PKCS12-Datei enthält strukturierte Daten, die einem Schlüssel und einem Zertifikat verschiedene Attribute, einschließlich "friendlyname", zuordnen können. Wenn Sie ‚importieren‘ ein PKCS12 mit openssl pkcs12 -in file.p12 ...
dem Ausgang diese Attribute enthält, aber im PEM - Format sind sie nur Kommentare und ignoriert, wie alles andere, die nicht innerhalb eines gültigen ist ----BEGIN x
zu -----END x
blockieren. Wenn Sie ein PKCS12 erstellen, können openssl pkcs12 -export -out file.p12 ...
Sie in ähnlicher Weise benutzerfreundliche Werte angeben, die in der PKCS12 als Befehlszeilenoptionen verwendet werden. Die in der PEM-Eingabe enthaltenen Werte werden jedoch ignoriert. (Sie können keine anderen Attribute angeben, obwohl localkeyid automatisch generiert wird.)
Sie können awk oder ähnliches verwenden, um die gewünschten Blöcke aus der Datei auszuwählen
awk -vwant=smeagol '/friendlyName:/ /^-----BEGIN/,/^-----END/' <manyPEM >onePEM # and then use onePEM
PS: Die Datenstruktur, die von ausgegeben wird, smime -outform der
ist CMS, das von PKCS7 abgeleitet wird und oft noch als PKCS7 bezeichnet wird. Nicht PKCS12, was sehr unterschiedlich ist. Wenn man es benennt, .p12
wird es wahrscheinlich Menschen verwirren und in die Irre führen, wie zum Beispiel das eigene zukünftige Selbst.