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

#contents

***''はじめに''

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

***''サイト秘密キーの作成''

+乱数の作成 
 $ mkdir KeyGen
 $ cd KeyGen
 $ openssl md5 * > rand.dat
+サーバーキーの作成 
 $ 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 になることもできます。
テストであれば,これで十分です。(但し,ブラウザが「不明な認証機関」であると怒りますが。)
++CA の鍵を作成 
 % openssl genrsa -des3 -out ca.key -rand rand.dat 1024
CAのパスフレーズを入れる。
++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 はできあがりです。
++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