2011年5月15日日曜日

Fedora14でApache Webサーバー(SSL編)

今回は, SSL の設定を行います。Apache Webサーバの設定がお済でない方は, (初期設定編)
をご覧ください。


手順は以下の通りです。
1.  OpenSSL のインストール
2.  Apache 用の SSL/TLSモジュールをインストール
3.  鍵を作成
4.  証明書をつくる
5.  証明書に署名する
6.  Apacheの設定をする
7.  Apacheの再起動
8.  ファイアウォールの設定
9.  アクセステスト

※今回の設定はテスト用です。いわゆる自己証明書(オレオレ証明書)です。
実際の運用では 4 で, .csr を作った後, ベリサインさんなどのCAに.csr を送って
署名してもらい, それを利用します。

1.  OpenSSL のインストール
Fedora Core 14 の "Add/Remove Software" より以下のパッケージをインストールします。
(openssl) で検索するとでてくるはずです

A general purpose cryptography library with WLS implementation

※筆者の環境では, デフォルトで入っていました。特に何かした覚えがないので, デフォルトで
入っているかもしれません。

2.  Apache のSSL/TLS モジュールをインストール
上と同様に, 以下のパッケージをインストールする

SSL/TLS module for the Apache HTTP Server

httpd.conf には, すでに
LoadModule ssl_module modules/mod_ssl.so  
が追加されているので, ここでは必要なし(ない場合は追加する

そしてインストール後, 設定ファイルが追加されている
/etc/httpd/conf.d/ssl.conf 

3. 鍵を作成
別にどこへ作っても問題ないですが, 専用のディレクトリを準備しておくとよい
(場所 /etc/httpd/conf/  以下)

mkdir key crt                   ←  key(鍵) と crt(証明書)  用のディレクトリをつくる
chmod 700 key crt           ← root のみのアクセスにしておく

・鍵を作成
openssl genrsa -des3 -out key/server.key 1024

これで, server.key  という鍵が作られます。
(パスフレーズを聞かれるので, パスワードを作っておきます)

4.  証明書をつくる
openssl req -new -days 365 -key key/server.key -out crt/ssl.csr

これで, 有効期限1年, 証明書  crt/ssl.csr ができました。

※認証局に申請する場合は, この csr を送るみたいです。

5.  証明書に署名する

openssl x509 -req -signkey key/server.key -days 3650 -in crt/server.csr -out crt/server.crt

この時点で3つのファイルが作成されたと思います。
・サーバーの鍵ファイル    key/server.key
・証明書                             crt/server.csr
・署名後の証明書             crt/server.crt

6.  Apacheの設定をする
/etc/httpd/conf.d/ssl.conf を編集

Listen 443

SSLCertificateFile /etc/httpd/conf/crt/server.crt

SSLCertificateKeyFile /etc/httpd/conf/key/server.key

<VirtualHost _default:443>


ServerName frekiss(ホスト名)
ServerAdmin atmarkplant@gmail.com(メールアドレス)

</VirtualHost>


となります。ホスト名と,  ServerAdmin は自分の環境で適切に設定してください。

7.  Apacheの再起動
/sbin/service httpd restart

※ここでkey のパスフレーズを聞かれるので, 先ほどのパスを覚えておきましょう。


8.  ファイアウォールの設定
デフォルトでは, iptable の443ポートは, アクセス禁止になっているので, ポートを解放します。
(設定方法は, 初期設定編をご覧ください)

9.  アクセステスト
クライアントから, https://frekiss(ホスト名)/
でアクセスしてみましょう。


こんなのが出てきます。(Google Chromeの場合)
自己証明書なので, 警告が出ています。
筆者環境では, Digest 認証を追加しているので, パスが聞かれていますが
設定していなければ出てきません。
警告を無視すると通常通り動作するはずです。

0 件のコメント:

コメントを投稿