OpenSSLでcrtとcsrとkeyファイルを生成

Posted by joeartsea on 2009-02-14

先日、Web部門からSSLの設定を頼まれました。俺様認証でのSSL運用は慣れているけどちゃんとした認証局で証明書を貰うのは久しぶりなんで思い出しながらやりました。keyファイル作ってcrtファイル作って…あれ?どっち送るんだっけ?…っと「おいおい^^;」という具合に適当にcrtファイルを送ると「これじゃない!」と怒られました。

ということでちゃんと整理して一連の流れを書いておきます。ちなみに環境はLinux+Apache(mod_ssl)+OpenSSLです。

  • Apache(mod_ssl)+OpenSSLの環境構築、足りないものはインストール
  • openssl genrsa -des3 -out example.key 1024 でkeyファイル(秘密鍵)を生成
  • openssl req -new -key example.key -out _example.csr_でcsrファイル(署名要求)を作成
  • 認証局へcsrファイル(署名要求)を送る
  • 認証局から送られてくるcrtファイル(証明書)をサーバに置く
  • Apache(mod_ssl)でSSL設定をする

認証局によって手順が若干違ったりしますが大枠ではそんなに変わりません。要はサーバに秘密鍵を作って、それを基に署名要求ファイルを作ってこれを認証局に送って、認証局がくれる証明書をサーバに配置すればいいだけです。

具体的な方法とSSLについての詳細はSSLによる安全なWebサイト作りをご覧ください。ただちょっと古い記事なんで補足するとpemファイルによる認証要求は今はあまりサポートされてないようです。あと認証局によっては認証要求、証明書ファイルの中の文字列だけでやりとりします。