2020年1月 9日 (木)

CSRを楽に作る

0. CSR is 何

SSL証明書の署名要求(Certificate Signing Request)のこと。[出典]

仕事でSSL証明書の更新をやることになったんだけど、その時に必要なデータを作るのが微妙にめんどかった。

1. 一発作成できるようにしてみた

やることはおおむね以下のとおり。

  1. 秘密鍵の生成
  2. 秘密鍵をもとにしたCSRの作成
  3. CSRをしかるべき証明機関に送って署名してもらう
  4. 対になる秘密鍵と署名済み公開鍵(あれば中間証明書も)をサーバに仕込む

最後の「秘密鍵と署名済み公開鍵をサーバに仕込む」は、まぁ読んで字のごとくなんだが、opensslで秘密鍵とCSRを生成するのを年1回しかやらないと色々忘れるので、処理をシェルスクリプトに固めてみた。
ちなみに対象環境はWSLのUbuntu。

使い方は以下のとおり。
ソースを見てもらえばわかるけど、それぞれデフォルト値が設定されている。

create_csr.sh [-d domain] [-p passphrase] [-s subject] [-y year]
  -d domain     ファイル名にするドメイン名
  -p passphrase 秘密鍵生成に使うPEMパスフレーズ
  -s subject    証明書のDN
  -y year       発行年

こいつを実行することで、カレントディレクトリに発行年のディレクトリを作成して秘密鍵とCSRを作成、CSRの中身をクリップボードへ放り込む。

あとは、クリップボードの中身を証明機関のWeb画面にペーストすれば署名要求は完了、という算段になっている。

2. 改造について

改造するとしたら、2~6行目のデフォルト値の部分、最終行のクリップボードへ送る処理、あたりか。

特に最終行はOSごとに処理が異なるので、変更は必須じゃなかろうか。

| | コメント (0)