security — Schlüsselbund und Zertifikate verwalten
Praxis-Guide zum macOS-Tool security — Passwörter, Zertifikate, Signier-Identitäten und Schlüsselbünde bequem im Terminal verwalten.
Das security-Kommando ist die Kommandozeilen-Schnittstelle zu den macOS-Schlüsselbünden (Keychains). Damit fragst du Passwörter, Zertifikate, Schlüssel und Signier-Identitäten ab, legst sie an oder löschst sie – alles aus dem Terminal heraus, ohne die grafische Schlüsselbundverwaltung zu öffnen. Das macht es ideal für Skripte, CI-Builds und Code-Signing-Workflows. Dieser Guide zeigt dir die wichtigsten Unterbefehle für den Alltag: vom Schlüsselbund-Handling über Passwort- und Zertifikatsverwaltung bis zu Code-Signierung und Vertrauensketten.
Schlüsselbund-Verwaltung
security list-keychains — Listet alle Schlüsselbünde in der Suchliste auf.
security list-keychainssecurity default-keychain — Zeigt den Standard-Schlüsselbund an.
security default-keychainsecurity create-keychain <name> — Erstellt einen neuen Schlüsselbund.
security create-keychain mykeys.keychain-dbsecurity delete-keychain <name> — Löscht einen Schlüsselbund.
security delete-keychain mykeys.keychain-dbsecurity lock-keychain — Sperrt den Standard-Schlüsselbund.
security lock-keychainsecurity unlock-keychain <name> — Entsperrt einen Schlüsselbund (fragt das Passwort ab).
security unlock-keychain login.keychain-dbPasswörter
security find-generic-password -s '<service>' -w — Findet ein Passwort über den Dienstnamen und gibt es aus.
security find-generic-password -s 'MyApp' -wsecurity find-generic-password -a '<account>' -s '<service>' -w — Findet ein Passwort über Konto und Dienst.
security find-generic-password -a 'admin' -s 'MyDatabase' -wsecurity add-generic-password -a '<account>' -s '<service>' -w '<password>' — Fügt dem Schlüsselbund ein Passwort hinzu.
security add-generic-password -a 'admin' -s 'MyDatabase' -w 'secret123'security delete-generic-password -s '<service>' — Löscht ein Passwort aus dem Schlüsselbund.
security delete-generic-password -s 'MyApp'security find-internet-password -s '<server>' -w — Findet ein Internet-Passwort (von Browsern usw. gespeichert).
security find-internet-password -s 'github.com' -wsecurity add-internet-password -a '<account>' -s '<server>' -w '<password>' — Fügt dem Schlüsselbund ein Internet-Passwort hinzu.
security add-internet-password -a 'user@example.com' -s 'mail.example.com' -w 'pass123'Zertifikate
security find-certificate -a — Listet alle Zertifikate im Standard-Schlüsselbund auf.
security find-certificate -asecurity find-certificate -c '<name>' -p — Findet ein Zertifikat über den Common Name und exportiert es (PEM-Format).
security find-certificate -c 'Apple Development' -psecurity import <file> -k <keychain> — Importiert ein Zertifikat oder einen Schlüssel in einen Schlüsselbund.
security import cert.p12 -k login.keychain-dbsecurity import <file> -k <keychain> -T /usr/bin/codesign — Importiert das Zertifikat und erlaubt codesign dessen Nutzung.
security import cert.p12 -k login.keychain-db -T /usr/bin/codesignsecurity export -k <keychain> -t certs -o <file> — Exportiert alle Zertifikate aus einem Schlüsselbund.
security export -k login.keychain-db -t certs -o certs.pemCode-Signierung
security find-identity -v -p codesigning — Listet gültige Code-Signing-Identitäten auf.
security find-identity -v -p codesigningsecurity find-identity -v — Listet alle gültigen Identitäten auf.
security find-identity -vsecurity cms -D -i <file> — Dekodiert eine signierte CMS-Nachricht.
security cms -D -i signed.p7Vertrauen und Verifizierung
security verify-cert -c <cert> — Prüft die Vertrauenskette eines Zertifikats.
security verify-cert -c cert.pemsecurity add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain <cert> — Fügt systemweit ein vertrauenswürdiges Stammzertifikat hinzu.
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca-cert.pemsecurity remove-trusted-cert -d <cert> — Entfernt ein vertrauenswürdiges Zertifikat.
sudo security remove-trusted-cert -d ca-cert.pemsecurity dump-trust-settings — Zeigt die Vertrauenseinstellungen für Zertifikate an.
security dump-trust-settings Fazit
Das security-Tool bündelt den kompletten Schlüsselbund-Zugriff in einem einzigen Kommando und ist damit unverzichtbar, sobald Passwörter, Zertifikate oder Signier-Identitäten skriptgesteuert verwaltet werden müssen – etwa in CI-Pipelines, die App-Bundles signieren. Geh aber bewusst mit den heiklen Stellen um: find-generic-password -w und find-internet-password -w geben das Passwort im Klartext auf der Konsole aus – es landet damit schnell in der Shell-History oder in CI-Logs. delete-keychain und die delete-*-password-Befehle sind unwiderruflich, und ein entsperrter Schlüsselbund bleibt offen, bis du ihn wieder sperrst. Sperre Schlüsselbünde nach getaner Arbeit also wieder und gib -w '<password>' möglichst über eine Variable statt im Befehl direkt an.
Weiterführende Links
- Security Framework – Apple Developer – offizielle Apple-Dokumentation zu Schlüsselbund, Zertifikaten und Vertrauen (englisch)
- Keychain Services – Apple Developer – Hintergründe zur Architektur der macOS-Schlüsselbünde (englisch)
Verwandte Kommandos
- caffeinate – verhindert, dass der Mac in den Ruhezustand wechselt
- defaults – liest und schreibt macOS-Benutzereinstellungen
- diskutil – verwaltet Festplatten, Volumes und Partitionen