きっかけ
最近キーチェーンを調べなければならないシーンがあったのですが、circleCI上での話だったのでCUIしか使えず。。。
GUIでしかキーチェーンの操作したことがなかった僕はとても困ったので記事にしました。
キーチェーン概要
赤い枠の部分がキーチェーンたちで、「ログイン」が1個のキーチェーンになってます。
そして青い枠で、選択されているキーチェーン内にある項目の何を表示するかの絞り込みを行ってます。
システムが認識できるキーチェインは2つで、
システムのキーチェインが1つとユーザーのキーチェインが1つのみになります。たぶん。。
キーチェイン作成
security create-keychain {{キーチェーンパス}}
キーチェイン一覧
security list-keychains
システム側とユーザー側とで設定されているキーチェイン2つを表示します。
-d u
オプションでユーザーのキーチェーンが確認できます。
読み込むキーチェインを追加します。
security list-keychains -s {{キーチェーンパス}}
キーチェインに証明書を追加します。
security import {{証明書パス}} -k {{キーチェーンパス}} -P {{password}} -T /usr/bin/codesign -T /usr/bin/security -T /usr/bin/productbuild
-T
オプションで、パスワードなしで許可するアプリを設定します。複数指定可能です。
キーチェインの設定を行います。
security set-keychain-settings -t 3600 -l {{キーチェーンパス}}
-l
オプションは、スリープした時にキーチェーンをロックします。
-t 3600
オプションは、3600秒後にキーチェーンをロックします。
実際にやってみよう!
キーチェーン一覧
まずはキーチェーン一覧を見てみます。
/Users/maruiyugo/Library/Keychains/login.keychain-db
が画像の「ログイン」というキーチェーンです。
/Library/Keychains/System.keychain
が「システム」キーチェーンですね。
$ security list-keychains
"/Users/maruiyugo/Library/Keychains/login.keychain-db"
"/Library/Keychains/System.keychain"
キーチェーン作成と設定
marui.keychain-db
キーチェーンを作成し、キーチェーンの読み込みを行いました。
最後にキーチェーンのリストを表示させています。
するとlogin.keychain-db
がmarui.keychain-db
に入れ替わったではありませんか!
キーチェーンアクセスをみても「ログイン」が「marui」になっています。
$ security create-keychain ~/Library/Keychains/marui.keychain-db
password for new keychain:
retype password for new keychain:
$ security list-keychains -s ~/Library/Keychains/marui.keychain-db
$ security list-keychains
"/Users/maruiyugo/Library/Keychains/marui.keychain-db"
"/Library/Keychains/System.keychain"
キーチェインに証明書を追加
適当なp12ファイルを追加してみました。
$ security import {{p12}} -k ~/Library/Keychains/marui.keychain-db -P {{password}} -T /usr/bin/codesign -T /usr/bin/security -T /usr/bin/productbuild
キーの中身を見てみると、オプションで指定した「codesign」「security」「productbuild」が許可されています。
まとめ
キーチェーンは今まで流されるままに使っていたので、今回調べて詳しくなれてよかったです。
記事がよかった!とかためになった!とか思ったら、励みになるのでLGTMおしてください!ないてよろこびます(๑>◡<๑)