こんにちは。開発部第1グループの涌井祐介です。
今回はiOSの開発で何かとお世話になるp12ファイルのタイプを、コマンドラインで確認する方法について調べました。
そもそも
Macではキーチェーンに登録したp12証明書は、キーチェーンアクセスの一覧から該当のものを選択すれば、下記の画像のようにファイルのタイプは確認できます。
調査したワケ
このようにMacなら、コマンドラインを使わずとも、p12ファイルのタイプを確認できますが(パスワードは判明している前提)。。。下記のような要因からコマンドラインでの確認方法を調査することになりました。
- p12ファイルの名前から、APNs証明書 or 開発者証明書なのか判別できない
- WindowsのPCで、p12ファイルのタイプ(APNs証明書 or 開発者証明書なのか)を確認したい
- ただし、確認者はp12ファイルのパスワードを知っている
準備
お使いのPCの環境によって、以下の手順で準備が必要です。
WindowsのPCの場合
OpenSSLのインストールとパスの設定が必要です。
下記のリンクに詳細な手順がありますので、ご参照ください。 https://blog.katsubemakito.net/articles/install-openssl-windows10
Macの場合
なんとOpenSSLのインストールと設定は不要です。
というのも、MacにはOpenSSL互換のLibreSSLが、元々インストールされているためです。(知りませんでした。。。)
インストールせずに、バージョン確認コマンドを実行したところ
$ openssl version LibreSSL 2.8.3
と表示されました。
確認手順
- コマンドラインを開きます。
- 下記のコマンドを実行すると、パスワードを求められるので、入力します。(パスワードが設定されていない場合、Enterキー入力でOK)
$ openssl pkcs12 -in ファイル名 -clcerts -nokeys Enter Import Password:
実行結果
Macですと、下記のように表示されます。(…は適当に置き換えた内容です)
MAC verified OK Bag Attributes friendlyName: iPhone Developer: ... (...) localKeyID: ... subject=/UID=...iPhone Developer: ... issuer=/CN=Apple Worldwide Developer Relations Certification Authority ... -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
こちらはiPhone Developerと表示されていますので、開発者証明書になります。
また、APNs証明書の場合は下記のように表示されます。
MAC verified OK Bag Attributes friendlyName: Apple Sandbox Push Services: ... localKeyID: ... subject=/UID=...Apple Sandbox Push Services: ... issuer=/CN=Apple Worldwide Developer Relations Certification Authority ... -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
ちなみにApple Sandbox Push Servicesと表示されていますので、開発用ですね。
補足
検索すると、keytoolを使った方法もhitしますが、こちらはJavaの証明書ストアに登録されているものが対象ですので注意しましょう。
また、調査に使用したOSバージョンは以下になります。
- Windows : Windows 10
- Mac : Monterey
まとめ
- WindowsのPCの場合、OpenSSLをインストール、パスを設定すればコマンドラインでp12ファイルのタイプが確認可能
- Macの場合、OpenSSLはインストール不要で、コマンドラインでもp12ファイルのタイプが確認可能
- keytoolはJavaの証明書ストア用のものなので、混同しないこと