
| SSLとは? |
通信のやり取りを平文で流すのでは無く、暗号化して流すのがSSLです。
普段は、URLがhttp://〜となってる部分を、https://〜としてアクセスさせます。
ポートは80番では無く、443番を使用します。
普通のWebコンテンツであれば、暗号化して提供する必要はありませんが、
機密性のあるものをやり取りする場合には、データを暗号化する必要があります。
Apacheでそれを実現する為には、先ずmod_sslというモジュールが必要です。
また、ここでは認証局に認証してもらうのでは無く、自己署名証明書を発行してSSLを利用するようにします。
自己署名証明書だと、ホスト認証が不完全なので、サーバのなりすましを防ぐことはできませんが、
通信の暗号化は可能です。
| SSLの設定 |
ApacheでSSLを利用する為には、mod_sslというモジュールを追加する必要があるので、
これが導入されているか確認し、入っていない場合は追加します。
| # rpm -q mod_ssl ←mod_sslが入ってるかの確認 # yum -y install mod_ssl ←入ってない場合はyumで導入 |
次にサーバのランダム鍵と自己署名証明書の作成を行い、SSLが利用できるようにします。
デフォルトでサーバのランダム鍵が作成されていると思いますので、これを削除して新規に作成します。
| # cd /etc/httpd/conf # rm -f ssl.key/server.key # rm -f ssl.crt/server.crt |
次に以下のコマンドでランダム鍵の作成を行います。なお、カレントディレクトリが/etc/httpd/confに
なっていることを前提に記述します。
| # openssl genrsa 1024 > ssl.key/server.key # chmod 600 ssl.key/server.key |
ランダム鍵を作成しましたら、以下のコマンドで自己署名証明書の作成を行います。
| # make testcert umask 77 ; \ ・・・省略・・・ ----- Country Name (2 letter code) [GB]:JP ←国名を2文字で入力 State or Province Name (full name) [Berkshire]:Japan ←国名を入力 Locality Name (eg, city) [Newbury]:Tokyo ←街名などを入力 Organization Name (eg, company) [My Company Ltd]:chibi.name ←会社名などを入力 Organizational Unit Name (eg, section) []: ←部署名を入力(省略可) Common Name (eg, your name or your server's hostname) []:chibi.name ←ホスト名を入力 Email Address []:webmaster@chibi.name ←管理者のメールアドレスを入力 |
以上が終わりましたら、Apacheを再起動してください。再起動後にSSLが利用できるようになります。
httpsでは443番のポートを利用しますので、443番のポートを開放します。
なお、ポート開放については、当サイトのファイアウォールスクリプト使用の場合は、そのままでOKです。
スクリプトを使用せず、iptablesのルールをデフォルトのまま使用している場合は、以下のようにします。
| # service httpd restart # vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT # service iptables restart |
試しに、自分のサイトにSSLでの接続を確認してみます。https://ドメイン名/と指定します。
最初がhttpsとなるので注意が必要です。すると以下のような画面が出てくると思います。
ここでは、はいを選びます。また証明書の表示からインポートしてしまってもいいです。
そうすれば次からはこのような警告画面は出なくなります。
はいを選択すると次は下のような画面が出ますので、ここでもはいを選びます。

ブラウザの右下などに鍵のマークが付いて、ちゃんとページが表示できていれば、SSLで
接続できていますので通信は暗号化されます。
最終更新 : 05/31/2005