カテゴリー:SSL @ 2010-10-06 11:16:44
前回に引き継続きSSLのお話です。今回はSSLの取得方法から設置までを紹介します。後半は技術者よりの内容になっていますので、レンタルサーバー等でSSLを使用する場合は前半のみ読んでいいだければ大丈夫かと思います。取得の予備知識として前回の記事やlivedoorさんの記事を見ると良いと思います。livedoorさんの記事はかなりまとまってて分かりやすいのでオススメです。
まずは以下の概念図を見てみて下さい。

では一つずつ見ていきましょう。
秘密鍵 = SSLでサイトを暗号化するのは、サイトの個人情報などに鍵をかけるというイメージです。その鍵になるのがこの秘密鍵と呼ばれるものです。
CSR = これは、SSLを取得するあなたの情報です。会社であれば会社の情報などをいれます。ここにSSLに対応させるサイトのドメインを入れます。これを間違えるとSSL取り直しになってしまうので注意が必要です。ちなみにこのドメインは、CSR内ではコモンネームと呼ばれています。
SSL証明書 = 秘密鍵とCSRをベリサインなどのSSL発行会社に渡すとSSL証明書というものが渡されます。これをサーバーに設置することでサイトがSSL対応のサイトへと変わるわけです。
あと、図にはないですがもう一つ大事なものがあります。
中間証明書 = 難しそうな名前ですがこれはSSL発行会社からもらうもので、『このSSL証明書は、ちゃんと私らが発行した正式なものなので安全ですよ』と証明してくれるものです。普通はSSL証明書と一緒に渡されるます。この証明書がないと、SSLが正しくないとエラーが出てしまいます。(一部、RapidSSLなどで中間証明書が不要なタイプもあります。各社の注意事項に従って下さい。)
個人情報などを入力して申込み
↓
入金
↓
CSRと秘密鍵をSSL発行会社に渡す
↓
SSL証明書と中間証明書をもらう
↓
サーバーに設置
↓
完成
大体このような流れです。
ちなみに最初に言っておきますが、CSRと秘密鍵は取得側(つまりあなた)が用意しないといけないものですが、代理店等によっては代行して作成してくれるところもあります。しかし、このブログは技術者向けです。もちろん読者は自分で作りたい人たちしかいないはずです(´・ω・`ん?
実際自分で作らないと、SSLが正常に設置できなかったときどこが悪いのか突き止めるのに時間がかかったりします。
ここからは、SSHなどのターミナルでコマンドを実行できる環境を持っている方が対象です。
今回実行した環境は、CentOS5.3 32bitです。
# 生成するファイルを保存するディレクトリを作成 [root@localhost ~] mkdir ~/sample_ssl # opensslコマンドのパスを探ます [root@localhost ~] which openssl /usr/bin/openssl # 移動 [root@localhost ~] cd /usr/bin/ # 秘密鍵生成時に必要となる、ランダムな乱数を作ります [root@localhost bin] openssl md5 * > ~/sample_ssl/rand.dat # パスワードを自動で生成します。パスワードは秘密鍵で使います。 [root@localhost bin] mkpasswd -s 0 zpOdeCm88
秘密鍵を作ってからCSRを作ります。
# 先ほど作ったディレクトリに移動 [root@localhost bin] cd ~/sample_ssl/ # 秘密鍵作成 [root@localhost sample_ssl] openssl genrsa -rand rand.dat -des3 2048 > 2010_10_06.key.pem 先ほど生成したパスワードを2回ペーストします。
作成した秘密鍵をもとに、CSRを作成します。
会社名やドメインを入力します。項目の詳細は (https://www.verisign.co.jp/ssl/help/csr/capache_new.html) を参照して下さい。
# CSR作成 [root@localhost sample_ssl] openssl req -new -key 2010_10_06.key.pem -out 2010_10_06.csr.pem 先ほどのパスワードをまた入力します。 Country Name (2 letter code) [GB]:JP State or Province Name (full name) [Berkshire]:Tokyo Locality Name (eg, city) [Newbury]:Shinagawa-ku Organization Name (eg, company) [My Company Ltd]:SITEROID JAPAN LLC. Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:siteroid.jp Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
これで秘密鍵とCSRのファイルが2つ作成されます。ベリサインなどの会社にもよりますが大体はアップロードするフォームがありますのでそこからアップします。
SSL証明書を発行してもらったら、サーバーに設置します。
設置に必要なものは、『秘密鍵』 『SSL証明書』 『中間証明書』の3つです。
まずは、その3つをサーバーにアップロードします。できればwinscpなどの暗号化されたアップローダーを使いましょう。 今回は、/etc/httpd/conf/sslへアップロードしましたが、別にどこでもかまいません。アップしたらapacheの設定です。
apacheの設定ファイルに以下を追加して、apacheを再起動します。
<VirtualHost *:443> ServerName siteroid.jp DocumentRoot /var/www/vhosts/siteroid.jp/html SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/httpd/conf/ssl/(SSL証明書のファイル名) # SSL証明書 SSLCertificateKeyFile /etc/httpd/conf/ssl/2010_10_06.key.pem # 秘密鍵 SSLCACertificateFile /etc/httpd/conf/ssl/(中間証明書のファイル名) # 中間証明書 </VirtualHost>
httpsでアクセスして、エラーが出ずにアクセスできればokです。
コマンド実行したりと大変かもしれませんが、『サーバーの設置に何が必要か?』などが分かれば、なんとかなると思います。以外につまずきやすいのがapacheの設定ですかね。ですが、ググれば嫌というほど情報が出てくるはずです。ぁ、ググる前にエラーログを見てくださいね(var/log/httpd/error_log)。^^。
前回勧めた代理店joes sslで秘密鍵とCSRの作成代行を依頼した場合の注意点を一つ。
秘密鍵ですがPKCS8の形式で渡されます。レンタルサーバーではRSA形式の秘密鍵しか受け付けないところもあるので注意が必要です。さくらインターネットなどがそうです。そういう場合は、以下のようにコマンドを実行してRSA形式に変換するといいです。
openssl rsa -in 秘密鍵のファイル名 -out 新しい秘密鍵のファイル名
ちなみにRSA形式は秘密鍵ファイルの一行目が
-----BEGIN RSA PRIVATE KEY-----
こんな感じになっています。
参考までに。
(リンク)
アイコンはここのサイトから頂きました。
http://medialoot.com/blog/incredibly-detailed-free-icons-set/
(参考)
http://blog.livedoor.jp/ld_directors/archives/51085702.html