ApacheにSSL証明書を設定してHTTPS通信できるようにする

CentOS7、Apacheで運用しているサーバで、HTTPS通信ができるようにする。

SSL証明書の準備

まずは、SSL証明書を準備する。SSL証明書は、実験用に無料のものを使用するか、有料のものを購入する場合は、SSLボックスなどで、安いのをサクっと買って準備する。

SSL証明書作成で、いくつかファイルを扱うことになるが、最終的に必要になるのは以下ファイル。
・秘密鍵
・証明書
・中間証明書(中間CA証明書の人は中間CA証明書)

Apacheの設定

mod_sslのインストール

httpsを使えるようにするためには、mod_sslをインストールして、Apacheが暗号化したりできるようにする必要がある。

sudo yum install mod_ssl

ssl.confにVirtualHostを設定

mod_sslをインストールすると、/etc/httpd/conf.dに、ssl.confができるので、これに、VirtualHostを追加する。(もちろん、追加じゃなくて、デフォルトの設定をそのまま書き換えても良い。)

例えば、以下のように最低限の設定で追加。

中間CA証明書を設定する場合は、SSLCertificateChainFileの代わりに、以下のように設定。

ファイアウォールの設定

ファイアウォールの設定は、サーバによるかもしれない。
AzureとかAWSなどのクラウドの仮想マシンでは、おそらくfirewalldは使用していないと思うので、設定する必要はない。
例えば、publicゾーンにHTTPSを許可する設定は、

firewall-cmd --add-service=https --zone=public --permanent