Schlagwort: zertifikate

Private Schlüssel und .csr für S/MIME Zertifikate vorbereiten

Um ein S/MIME Zertifikat zu generieren benötigt man ähnlich zu SSL/TLS Serverzertifikaten einen privaten Key und ein CSR.

Im Terminal geht dies mit openssl wie folgt:

openssl genrsa -out my-smime.key 4096

Der Certificate Sign Request wird dann so erstellt:

openssl req -new -key my-smime.key -out my-smime.csr

Wichtig ist dass die zugehörige E-Mail-Adresse dann im Common Name Feld angegeben wird, die restlichen Felder sind wie bei SSL Zertifikaten zu belegen (z.B. DE, Bayern, Hassfurt, Firma XY GmbH, IT Abteilung, E-Mail-Adresse als Common Name, E-Mail des Kontaktes (nicht so wichtig, gleiche wie Common Name oder leer), optional ein Passwort (kann auch leer bleiben).

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []: 
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:

Hat man dann über eine ordentliche CA seine Zertifikat mit dem CSR bestellt und ein .crt File erhalten, kann man dann aus allen Dateien ein pk12 Datei schnüren (im Terminal):

openssl pkcs12 -export -in my-certificate.cer -inkey my-smime.key -out my-smime.p12

Hat man noch ein Intermediate Zertifikat erhalten, dann kann dies anstatt der obigen Zeile mit dem Paramteter -certfile gleich mit eingebunden werden:

openssl pkcs12 -export -in my-certificate.cer -inkey my-smime.key -certfile intermediate.cer -out my-smime.p12

Hierbei wird ein Passwort angefordert, was frei gewählt werden kann und beim Importieren in dem Mail-Client später benötigt wird.

macOS: Unsichtbare Zertifikate aus der Keychain löschen

In gewissen Situation kommt es vor, dass Apples Keychain („Schlüsselbund“) Zertifikate nicht mehr anzeigt, obwohl sie im System vorhanden sind. Problematisch ist dies, wenn bspw. ein altes Zertifikat gelöscht und durch ein neues ersetzt werden soll. In meinem akuten Fall ging es um den Austausch des Root-Zertifikats einer lokalen CA (Certificate Authority). Das alte Zertifikat wurde nicht angezeigt und ein Import des neuen, auf den gleichen Namen lautenden Zertifikats schlug ohne Angabe von Gründen fehl.

Wenn der Name des nicht mehr dargestellten Zertifikats bekannt ist, lässt sich dieses über das Command Line Interface löschen. Für Zertifikate in der Keychain „System“:

sudo security delete-certificate -c "Zertifikatsname" -t /Library/Keychains/System.keychain

Oder bei Zertifikaten, die im Schlüsselbund „login“ eines Benutzers abgespeichert wurden:

sudo security delete-certificate -c "Zertifikatsname" -t /Users/Benutzername/Library/Keychains/login.keychain

Ein neues Zertifikat kann zum Beispiel mittels

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain neues_zertifikat.crt

in die Systems-Keychain (so dass es von allen Benutzern des Rechners genutzt werden kann) importiert werden.