テストWebサーバー(WEBrick)準備(ベリサインSSL導入)

★★今回やりたいこと★★
テストサーバーにベリサインSSLhttp://www.verisign.co.jp/)を導入したい。
Webサーバーは「WEBrick」とする。

VeriSign Class 3 Primary CA
VeriSign Class 3 Primary CA G2
VeriSign/RSA Secure Server CA

上記の3つのどれかが良い。


★★ベリサインSSLを導入する目的★★
1.「暗号化通信」をすることで、ネットワークを流れる個人情報の漏えいを防ぐ。
2.「運営している組織が本物である」ということを確認できる。
3.携帯電話端末にインストールされているルート証明書ベリサインが多いため。(http://triaez.kaisei.org/~kaoru/ssl/cell.html)

テストサーバーにベリサインを導入する理由は3の影響が大きい。


★★無料テストIDでテストしてみる★★
https://digitalid.verisign.co.jp/trialserver/trialIntro.htm

以下5つのステップを踏む

Step 1: CSRの生成
Step 2: CSRの提出
Step 3: 申請フォームの入力
Step 4: テスト用ルート証明書のインストール
Step 5: テスト用セキュア・サーバIDのインストール

○Step 1: CSRの生成
CSRとは、認証局に提出する署名リクエスト(Certificate Signing Request)です。
https://digitalid.verisign.co.jp/trialserver/trialStep1.htm
↑OpenSSLを利用する場合はこれでよさそう。
※今回利用するマシンは、/usr/bin/openssl にOpenSSLがインスコされていた。

CSRの生成例

# cd /usr/bin
# ./openssl md5 * > rand.dat
# ls -la | grep rand.dat
-rw-r--r--  1 root root     131748  9月 12 12:29 rand.dat
# openssl genrsa -rand rand.dat -des3 1024 > 2007key.pem
131748 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
............++++++
...................................++++++
e is 65537 (0x10001)
Enter pass phrase:(パスワード入力。忘れないようにする)
Verifying - Enter pass phrase:(パスワード入力。忘れないようにする)
# ls -la | grep 2007key
-rw-r--r--  1 root root        963  9月 12 12:32 2007key.pem
# openssl req -new -key 2007key.pem -out 2007csr.pem
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:(都道府県:例 Tokyo)
Locality Name (eg, city) [Newbury]:(市区町村:例 Minato)
Organization Name (eg, company) [My Company Ltd]:(会社名)
Organizational Unit Name (eg, section) []:(部署名)
Common Name (eg, your name or your server's hostname) []:(SSL接続の際のURL:FQDN)
Email Address []:(何も入力なし)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(何も入力なし)
An optional company name []:(何も入力なし)
[root@localhost bin]# cat 2007csr.pem
-----BEGIN CERTIFICATE REQUEST-----
MIIBwjCCASsCAQAwgYExCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzEPMA0G
A1UEBxMGTWluYXRvMSMwIQYDVQQKDBpMaXZlIFJldm9sdXRpb24gQ28uLEtMCAh0
ZDEOMAwGA1UECxMFYXJpZXMxHDAaBgNVBAMTE2ZrdXNoaWcubGVpYWEuanAuanAw
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL6nj5rVgw3eVvpqRUWMe9WA+awY
UW2ptPvR7tppRlRH3IjO6GrIiNoGjuljWtdymlHWwTYJRSFK339/hNjK3VBTU+yC
7YZKJduMxLoqWFPQHzkzgMWEHiJmPqBGbaMDr7s7YLOW3liwcB16/nRywv6T79et
Z6TIrHW3VARGEY0LAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQClgcgSgCRhKJRB
026Guy3SfBf+a1s292dj3FCekIQ7MzU3yomYlw5ZWGtvx/UBXk5sOXFFI0sBwoJ4
C5l09x7wACm8GEOfmzJJw+UtOqMcV+cF7QHMS3fY0mYr3LysxhGxEhuh29jS5klp
eiFpilEx3oBr57wQviP9muc/FS6Hjg==
-----END CERTIFICATE REQUEST-----

2007csr.pem => これはベリサインに申請するためのもの
2007key.pem => これは秘密鍵。大事に大事にしましょう。

※ハマリどころ

# ./openssl md5 * > rand.dat
Read Error in X11
18247:error:0200B015:system library:fread:Is a directory:bss_file.c:167:
18247:error:20082002:BIO routines:FILE_READ:system lib:bss_file.c:168:
[root@live-passport bin]# ls -la | grep rand.dat
-rw-r--r-- 1 root root      52967 Sep 12 12:43 rand.dat

↑というエラー。でも、rand.datは生成される。
「OpenSSLの擬似乱数情報の生成について」(1) Linux Square − @IT
↑「推奨はできないが、問題ない」という話。


○Step 2: CSRの提出
https://digitalid.verisign.co.jp/trialserver/trialStep2ns.htm

Step 1で生成した 2007csr.pemの中身をコピーしてフォームに入力する。

○Step 3: 申請フォームの入力
指示に従いフォームを入力していく。
※入力が終わると、ベリサイン発行の公開鍵をゲットできる。

○Step 4: テスト用ルート証明書のインストール
申し込み後にくるメールにもURLが書かれていて、そこからでも取得できます。

○Step 5: テスト用セキュア・サーバIDのインストール
Webサーバーにより異なります。

★★方法★★
WEBrick SSL - 基本へ帰ろう
↑こちらをみて、ベリサインからゲットした公開鍵と初めに生成した秘密鍵をセットすればOK!