超手っ取り早く SSL サーバ証明書 (自己署名証明書) を作成する


はじめに

前回の「Ruby の openssl ライブラリを使って、サーバ証明書やクライアント証明書を作成する」で Ruby をつかってサーバ証明書やクライアント証明書を作成する方法を書きましたが、実際には「SSL サーバ証明書を作成するために OpenSSL を使う」という人が大半だと思いますし、Ruby を使ったことがない人も多いと思います。
今回は、Ruby がわからなくても「簡単にサーバ証明書を作成する方法」をつくってみました。(ただし、Ruby はインストールしておく必要があります)

準備するもの

  • Ruby
  • Git (必須ではない)

リポジトリを clone する

cmd
$ git clone https://github.com/k-masaki/certification-publisher.git
$ cd certification-publisher

Git をインストールしていない場合は、こちらからダウンロードしてください。ダウンロード、解凍をしたら、解凍したフォルダにコンソールで移動してください。

プライベート CA を準備する

config.yml を編集することで、証明書の値を変更することができます。 (任意)

config.yml
C:  JP
ST: Tokyo
DC: Minato-ku
O:  Example, Inc.
CN: Example CA

以下のコマンドを実行して、CA を構築する

cmd
$ ruby prepare.rb

実行が完了すると、ca フォルダ配下に ca_private_key.pem (CA の秘密鍵) と ca.pem (CA の証明書) が作成されています。

サーバ証明書を作成する

例えば、example.com 用の SSL サーバ証明書を作成する場合は、以下のようなコマンドを実行します

cmd
$ ruby publish.rb example.com

実行が完了すると、example.com フォルダ配下に example.com.key (サーバの秘密鍵) と example.com.crt (サーバ証明書) が作成されています。
あとはそれらを Web サーバに送ってよしなにやってください。

ca/ca.pem をクライアント PC (ブラウザ) 側で信頼すると、Web サーバにアクセスしたときに警告画面も出ないので快適です。
これで、ワンコマンドで SSL 証明書が作成できるようになりました!