Code signing identity
Identity とは、秘密鍵とCertificateが共にパッケージされたものである。PKCS #12 ファイル (.p12ファイル) としてインポート/エクスポートできる。
特にコード署名の文脈でいうと、この Identity は Code signing identity と呼ばれ、コード署名をするのに利用される秘密鍵, Certificateを格納する。
秘密鍵はハッシュ化したコード (seal) をさらに暗号化するのに利用する秘密鍵
Certificate は 公開鍵 + いくつかの付加情報 を保持している
プロセス上必須ではないが、大抵認証局によって署名 (= 秘密鍵による暗号化) がされている場合が多い
Code signing identity は、ベータ版とリリース版、iOS と macOS などでも通常異なる。
秘密鍵+公開鍵のキーペア は、コード署名の署名者自身... iOSアプリ開発でいうと、開発者自身が生成する必要がある。公開鍵から Certificate を生成する必要があるが、この生成は Apple に依頼する。Apple Developer Program に登録し Developer portal にアクセスすると、様々な種類の digital certificate を生成することができる。
Developer ID を含んだ Certificate (Mac app の public な配布に必要)
Mac App Distribution Certificate (Mac App Store への配布に必要)
iOS Distriution Certificate (App Store への配布に必要)
Code signing identity の管理方法は、Xcode に任せる方法 と、手動で管理する方法 の二種類がある。大抵は前者の方が楽で、後者は Apple 以外の CA (認証局) を利用したい場合に選択する。
Keychain の Certificate Assistant という機能を利用すると、Certificateのリクエストを作成できる。これを認証局、すなわち Apple に提出することで、Certificateを DL できる。これを KeyChain にインポートすると、秘密鍵とCertificateが紐づけられ、Code signing identity となる。
Code Signing Tasks - Code Signing Guide