Apache httpd 2.2 に HTTPS (SSL/TLS) の設定をする (CentOS 6)

 本稿では CentOS 6 にインストールされた Apache httpd 2.2 に HTTPS (SSL/TLS) の設定をする手順について説明します。

mod_ssl をインストール

 Apache httpd で HTTPS での接続を実現するためには、mod_ssl というモジュールを利用します。 mod_ssl は、SSL v2, SSL v3, TLS v1 という暗号通信方式をサポートしています。 (TLS は SSL 3.0 の次のバージョンです)

 Apache httpd 2.2 を yum でインストールした場合は、mod_ssl を yum で追加インストールすれば良いです、次のコマンドでインストールできます。

# yum -y install mod_ssl

 インストールが完了すると /etc/httpd/conf.d/ssl.conf に mod_ssl の設定ファイルが作成されます。

秘密鍵・SSL証明書の準備

 HTTPS での通信を実現するためには、サーバの秘密鍵とSSL証明書が必要ですので予め準備をしておいてください。 SSL証明書の作成については、別稿「OpenSSL で SSL 自己証明書を発行する手順」などを参考にしてください。

OpenSSL

OpenSSL で SSL 自己証明書を発行する手順

 秘密鍵・SSL証明書は、/etc/httpd/conf/ssl というフォルダを作成し、そこに保存することとします。 秘密鍵を server.key 、サーバ証明書を server.crt というファイルで保存したこととします。

設定

 mod_ssl のインストールで作成された ssl.conf を設定します。 ファイルを開くと VirtualHost の設定があり、ここを設定することが主な作業となります。 項目 SSLCertificateFile にサーバ証明書のパスを、項目 SSLCertificateKeyFile に秘密鍵のパスを設定します。

... (略) ...
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/conf/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/server.key
...

また項目 SSLProtocol は、HTTPS 接続する暗号通信方式を設定する項目です。 デフォルトの状態では SSL v2 を利用しない設定になっています。 例えばSSL v3 も利用しないようにするには次のように設定します。

SSLProtocol all -SSLv2 -SSLv3

再起動

 最低限、上記を設定すれば HTTPS の接続が可能になりますので、Apache httpd を再起動して設定を有効化します。 秘密鍵にパスワードを設定している場合は、Apache の起動時にパスワードの入力が求められます。

# service httpd restart
Enter pass phrase:パスフレーズ入力

 起動したら URL のプロトコル部を https に変更して WEB ページにアクセスしてみましょう。 これでアクセスできれば設定は完了です。

おわりに

 本稿では CentOS 6 にインストールされた Apache httpd 2.2 に HTTPS でアクセスできるようにする設定の方法について解説しました。

Apache httpd 入門へ戻る

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。