**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
いずれの場合も,これで機械を再起動できます。