概要
キーチェーンアクセスを使ってクライアント証明書を発行する方法を紹介します
ちなみにサーバ証明書の発行ではないのでご注意ください
サーバ証明書は Let’sEncrypt などを使い正式な認証局を通してから発行しましょう
環境
- macOS 10.15.2
- openssl 2.8.3
キーチェーンアクセスでクライアント証明書を発行する
キーチェーンアクセスを開きます
そしてメニューから「証明書アシスタント」->「証明書を作成」を選択します
以下のように作成されれば OK です
キーチェーンアクセスに追加したクライアント証明書があることを確認しましょう
.cer ファイルと .p12 ファイルを書き出す
証明書ファイルと鍵ファイルをキーチェーンアクセスで書き出します
作成したクライアント証明書を右クリックし書き出しを選択します
.cer ファイルが作成されたら続けて「個人情報交換 (.p12)」を選択します
パスワードを設定することができますが今回は空のまま作成しました
.crt ファイルと .key ファイルに書き換える
MacOS で使う場合はこのままでも使えますが nginx や Apache Httpd Server などのメジャーな Web サーバで使う場合には変換が必要です
変換には openssl コマンドを使います
openssl x509 -in my_client_cert.cer -inform DER -out my_client_cert.crt -outform PEM
openssl pkcs12 -in my_client_cert.p12 -nocerts -nodes -out my_client_cert.key
鍵を変換するときにパスワードを求められますが今回は空にしているのでそのまま Enter で OK です
中間 CA 証明書を作成する
作成した鍵情報から自己認証局を作成することもできます
認証局が作成できれば中間 CA 証明書も発行できます
まずは認証局を作成します
先程作成したクライアント証明書の鍵を選択し「認証局を作成」を選択します
固有名のタイプは「自己署名ルート CA」にします
ユーザ証明書は「SSL クライアント」にします
続けて中間認証局を作成します
同じ用に「認証局を作成」を選択します
そして今度は固有名のタイプに「中間CA」を選択します
先ほど作成したルート認証局が表示されるので確認します
今回は信頼されていないルート認証局になるので警告が出ますが作成します
キーチェーンアクセスの一覧に作成対 CA と中間 CA が存在できると思います
あとは中間 CA を選択して再度書き出しを行えば中間 CA 証明書が発行できます
クライアント証明書を作成した手順と同じで .cer ファイルを書き出して .crt に変換すれば OK です
openssl x509 -in my_client_ca_cert.cer -inform DER -out my_client_ca_cert.crt -outform PEM
Tips: その名前の認証局構成ファイルはすでに存在します。別の名前を選んでください。と表示される場合は
バグなのかもしれませんが作成した認証局をキーチェーンアクセスの一覧から削除して再度作成しようとすると「その名前の認証局構成ファイルはすでに存在します。別の名前を選んでください。」と表示され認証局が作成できなくなりました
その場合は以下のディレクトリにある認証局のディレクトリを削除すれば再び作成できるようになります
/Users/username/Library/Application Support/Certificate Authority
最後に
MacOS で SSL クライアント証明書を発行する方法を紹介しました
結局 openssl コマンドを使うのであれば初めの手順から openssl コマンドだけで完結することも可能です
キーチェーンアクセスに慣れている人はキーチェーンアクセスを使っても OK です
0 件のコメント:
コメントを投稿