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を追加する。(もちろん、追加じゃなくて、デフォルトの設定をそのまま書き換えても良い。)
例えば、以下のように最低限の設定で追加。
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:443> DocumentRoot /your/root/path ServerName yourhost.com ErrorLog logs/ssl_error_log CustomLog logs/ssl_access_log common SSLEngine on SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt </VirtualHost> |
中間CA証明書を設定する場合は、SSLCertificateChainFileの代わりに、以下のように設定。
1 |
SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt |
ファイアウォールの設定
ファイアウォールの設定は、サーバによるかもしれない。
AzureとかAWSなどのクラウドの仮想マシンでは、おそらくfirewalldは使用していないと思うので、設定する必要はない。
例えば、publicゾーンにHTTPSを許可する設定は、
firewall-cmd –add-service=https –zone=public –permanent
コメント