SSL証明書
自社や顧客の公開系サーバのインフラ周りを担当すると、SSL 証明書購入がたまに発生して、openssl でどうするんだっけ?みたいによくなります?なりません?
同じことを思ってる人が多いのかわからないですけど、cloudflare に提供していただいている cfssl コマンドで簡単にCSR、秘密鍵を作成できます。
cfssl の使い方
cfssl のインストール方法
cfssl のインストール方法は次のサイトをご参照ください。
CSR 情報 JSON ファイルの作成
openssl などで CSR ファイルを作成するときに入力する情報を、JSON ファイルとして作成します。JSONファイルを管理しておけばいいのは嬉しいです。(opensslは interactive なので・・・ファイルで持てたかもよく知らない。)
{
"CN":"example.jp"、
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "JP",
"L": "Bunkyo",
"O": "company,Inc",
"OU": "",
"ST": "Tokyo"
}
]
}
CSR(Certificate Signing Request)ファイルと秘密鍵の作成
cfssl genkey コマンドを使うと、CSR ファイルと秘密鍵が JSON で出力されます。
CSR ファイルとは、訳したまんま証明書の署名要求ファイルです。
cfssl genkey csr-info.json
この JSON を CSR ファイルと秘密鍵 pem ファイルとして出力するには、cfssljson コマンドを使います。
cfssljson -bare <ファイルのプレフィックス> <CSR・秘密鍵情報の JSON>
よく見るのは次のようにパイプして実行する方法です。
cfssl genkey <json> | cfssljson -bare <ファイルのプレフィックス> <json>
秘密鍵も作成されますので、作成するフォルダの権限設定は気をつけてください。
SSL証明書発行
SSL証明書購入
例えば、GMO グローバルサインや SSL ストア、ValueSSLなどで、SSL証明書を購入する場合、作成したCSRファイルを使って申請します。購入方法は購入するサイトをご確認ください。
証明書が発行されましたら、WEBサーバに設定してください。(方法はサービスによるため省略)
終わりに
結構端折って簡単に書きました。
私は SSL 証明書購入では、あまり混乱しなくなりそうです。(基本は GCP の無料の証明書を使いますけど・・・)
オレオレ証明書も作成できますが、非推奨のため記載はやめました。