Apache WEBサーバでhttps通信が行えるようにするためのポイントを説明します。
簡単に説明すると、Apacheの設定ファイルへサーバ証明書と秘密鍵の設定、及び443ポートを開放する設定を記載します。
また、ssl通信を行う為のApacheのモジュール(mod_sslモジュール)を使用するので、モジュールのインストールとモジュールの有効化を行います。
目次
前提
サーバ証明書と秘密鍵を準備しておいて下さい。
サーバ証明書と秘密鍵を準備していない場合、以下を参考にして下さい。
・世の中に公開しているwebサービスの場合
・開発環境で使用する場合
必要なディレクティブ
Apache webサーバへ設定する為、Apacheの設定ファイルに設定内容を記載していきます。
Apache の設定はディレクティブと呼ばれています。
今回は、以下のディレクティブを使用します。
・Listen
・SSLCertificateFile
・SSLCertificateKeyFile
ディレクティブとは?の簡単な説明については以下を参考にして下さい。
Listenディレクティブ
https通信を行うためには443ポートを使用します。
・設定例
Listen 443 https
SSLCertificateFileディレクティブ
サーバ証明書を設定する為のディレクティブです。
・設定例
SSLCertificateFile /etc/ssl/local/certs/server.pem
SSLCertificateKeyFileディレクティブ
秘密鍵を設定する為のディレクティブです。
・設定例
SSLCertificateKeyFile /etc/ssl/local/certs/server_key.pem
設定ファイル設置
ファイルの内容
今回は例として localssl.conf と言うファイルを作成します。
localssl.confの内容は以下の通りです。サーバ証明書及び、秘密鍵のパス、ファイル名は適宜変更して下さい。
Listen 443 https
SSLCertificateFile /etc/ssl/local/certs/server.pem
SSLCertificateKeyFile /etc/ssl/local/certs/server_key.pem
ファイルの配置
今回使用する localssl.conf を /etc/httpd/conf.d 以下へ配置します。
自分の環境ではこのディレクトリは、Apacheの設定ファイルを読み込むディレクトリとなっています。
Apacheが読み込む設定ファイルについては以下を参考にして下さい。
必要なモジュール
mod_sslモジュールを使用します。mod_sslモジュールがない場合、インストールし有効にする必要があります。
・インストール
yum install -y mod_ssl
モジュールの確認は以下を参考にして下さい。
注意事項
mod_sslモジュールをインストールすると、ssl設定が記載されたApacheの設定ファイルも設定されます。
具体的には以下のファイルが配置されます。
/etc/httpd/conf.d/ssl.conf
このファイルのサーバ証明書の読み込み先や秘密鍵の読み込み先を変更し使用しても問題ないですが、”ssl.conf” を “ssl.conf_bk” などとリネームし、設定ファイルの読み込みをキャンセルさせ、自分で設定ファイルを作成し(例えばlocal_ssl.confなど)今まで説明したディレクティブの設定を行っても動作します。
Apacheが読み込む設定ファイルについては以下を参考にして下さい。
最後に
バーチャルホストを設定している場合、ポートを443に設定する事を忘れないようにして下さい。