SSL用の秘密キーと証明書の作成方法

はじめに

SSL はサーバーを特定するコードが記されている「公開鍵 (public key)」と, それを証明する書類が必要です。それらの作成方法は,以下の通りです。

サイト秘密キーの作成

  1. 乱数の作成
    $ mkdir KeyGen
    $ cd KeyGen
    $ openssl md5 * > rand.dat
  2. サーバーキーの作成
    $ openssl genrsa -des3 -out server.key -rand rand.dat 1024

Verisign などの CA (Certificate Authority) に送付する書類(CSR)の作成

$ openssl req -new -key server.key -out server.csr

パスフレーズを入れる。すると,以下のようになる。

Country Name (2 letter code) [AU]: JP
State or Province Name (full name) [Some-State]: (Enter your state here)
Locality Name (eg, city) []: (enter your city here)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (enter something here)
Organizational Unit Name (eg, section) []: (enter something here)
Common Name (eg, YOUR name) []: (ドメイン名 or IPアドレス)
Email Address []: (your e-mail address)

ここでの Common Name には,後に httpd.conf に書き込む Sever Name にする。 ドメイン名を持たず,しかもテストのみなら 127.0.0.1 でも良い。

自分が CA になる場合

CA は Verisign などの第三者である必要がありますが,自らが CA になることもできます。 テストであれば,これで十分です。(但し,ブラウザが「不明な認証機関」であると怒りますが。)

  1. CA の鍵を作成
    % openssl genrsa -des3 -out ca.key -rand rand.dat 1024
    CAのパスフレーズを入れる。
  2. CA の証明書の作成
    % openssl req -new -x509 -days 365 -key ca.key -out ca.crt
    CA のパスフレーズを入力する。後は,CA の情報を入れる。
        Country Name (2 letter code) [AU]:JP
        State or Province Name (full name) [Some-State]:Tokyo
        Locality Name (eg, city) []:Toshima-Ku
        Organization Name (eg, company) []:AkmalIda Research Center
        Organizational Unit Name (eg, section) []:Network Research Department
        Common Name (eg, YOUR name) []:Masayuki Codec
        Email Address []:m-codec@akmalida.com
    これで CA はできあがりです。
  3. CA によるサイン 次は,この CA によって先ほど作成した server.csr にサインを付すことで,認証機関による 証明書が出来上がります。このために,modssl のソース内 pkg.contrib の中の sign.sh を 利用します。
    % ./sign.sh server.csr
      ...
      1 out of 1 certificate requests certified, commit? [y/n]y
      ...
      server.crt: OK

この server.crt が認証機関からの証明書となります。

Apacheを再起動してみます。

$ sudo apachectl restart

すると,SSL のパスフレーズをたずねてきます。したがって,機械の起動処理において自動で Apache が立ち上がる場合,入力されないパスフレーズを待ち続け,機械が二度と起動することは ないこととなります。機械の起動処理に Apache の起動を含めない必要がある訳です。

パスフレーズをたずねて来なくする方法もあります。

% cd /etc/httpd/ssl.key
% sudo cp server.key server.key.original
% sudo openssl rsa -in server.key.original -out server.key

いずれの場合も,これで機械を再起動できます。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Mon, 08 Mar 2004 16:02:37 JST (7359d)