5. FreeBSD 11.1 RELEASE - apache - SSL の設定

 
5.1 コンフィグレーションファイルの設定
5.2 クライアント用証明書のコピーとインストール
5.3 サーバの再起動

5.1 コンフィグレーションファイルの設定

 前頁で作成した認証情報を作成して SSL の設定を行います。
/usr/local/etc/apache24/httpd.conf
 の以下の箇所の先頭の「#」を削除してコメント解除します。

#LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

#LoadModule ssl_module libexec/apache24/mod_ssl.so

#Include etc/apache24/extra/httpd-ssl.conf
/usr/local/etc/apache24/extra/httpd-ssl.conf
 を以下のように編集します。

AddType application/x-x509-ca-cert .crt .cer ← [.cer] を加える

DocumentRoot "/usr/local/www/apache24/data"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
 の内容は、サーバの設定に合わせて適宜変えます。  「7.3 SSL 認証情報の作成」で作成したもののうち、必要なものを特定のディレクトリにコピーします。

> mkdir /hogehoge
> cp /etc/ssl/demoCA/cert.pem   /hogehoge/cert.pem
> cp /etc/ssl/demoCA/nokey.pem  /hogehoge/nokey.pem
> cp /etc/ssl/demoCA/cacert.pem /hogehoge/cacert.pem
 /usr/local/etc/apache24/extra/httpd-ssl.conf を以下のように編集します。

SSLCertificateFile    "/hogehoge/cert.pem"
SSLCertificateKeyFile "/hogehoge/nokey.pem"
SSLCACertificateFile  "/hogehoge/cacert.pem"
 /usr/local/etc/apache24/Includes/ 配下に適切な名前のコンフィグレーションファイルを作成して、https でアクセスさせたいディレクトリを以下のように記述します。

<Directory /usr/local/www/https>
    SSLRequireSSL
    SSLVerifyClient require
    AllowOverride None
    Options +Includes -Indexes
    Order allow,deny
    Allow from all
</Directory>
 4行目は、クライアントに要求する認証情報を示します。    指定する値は、数字もしくは文字で、4種類あり、それぞれ下記の意味を持ちます。
数字 文字 意味
0 none  クライアントに対して何も確認しない。
1 optional  クライアントに対して証明書の提示を要求する。  クライアントは証明書を提示しなくてもサイトを閲覧できる。  もし認証が提示されれば、サーバに、合法的な認証局(CA)が発行した証明書が格納されていなければならない。
2 require  クライアントに合法的な証明書の提示を要求する。  クライアントは合法的な証明書を提示しなければサイトを閲覧できない。
3 optional_no_ca  クライアントに対して証明書の提示を要求する。  クライアントは証明書を提示しなくてもサイトを閲覧できる。  もし認証が提示されても、サーバに格納されている証明書は合法的な認証局(CA)が発行した証明書でなくてもよい。
 デフォルトは何も確認しないようにしておき、各ディレクトリごとにセキュリティをかける強さによって 1~3 を使い分けるようにします。  以降、仮に /usr/local/www/https 以下を、https のドキュメントルートとすると  といった具合に記述します。(ここは、先に編集した、/usr/local/etc/apache24/extra/httpd-ssl.conf のドキュメントルートと合わせる必要があります)

5.2 クライアント用証明書のコピーとインストール

 前ページ「④クライアント認証ファイル」をクライアントのマシンにインストールしておかないと、作成した SSL のサイトを閲覧することはできません。  クライアント用証明書をサーバよりクライアントのマシンにコピーします。  クライアントのマシンにコピーしたら、セキュリティの観念からクライアント証明書ファイルは、サーバ上から削除しておくのが賢明です。  次に、クライアントマシンのブラウザへのインストールです。Mozilla Firefox の場合は以下のようにインストールします。  Firefox を開きます。  「ツール」→「オプション」→「詳細」→「暗号化」→「証明書を表示」→「あなたの証明書」→「インポート」で証明書ファイルを開きます。  パスワード入力画面が表れますので、クライアント証明書用のパスワードを入力してください。  これで、クライアント証明書のインストールは完了です。

5.3 サーバの再起動

 以下の設定に誤りがないことを確認して、apache を再起動します。

> /usr/local/etc/rc.d/apache24 configtest
> /usr/local/etc/rc.d/apache24 restart
 SSL のサイトを開くには、https://hogehoge.jp の https を間違えないようにしてください。  SSL が有効になっているかどうかは、Firefox ならば、ロケーションを表示しているバーの先頭に、鍵のマークがついているかどうかでわかります。  鍵マークがついていれば、SSL が有効になっていることを示しており、サーバとクライアントの通信は暗号化されています。  「メンテナンス/SSL」の認証ファイルの作成の手順をを行えば、新しい証明書やキーファイルを作り直すことができます。  そうやって、定期的に証明書やキーを作り変えておけば、万が一クラッカーに解読されても、作り変えた時点でまたクラッカーは解読作業を行わなければなりませんので、セキュリティ上一層強固なものとなるでしょう。