Apacheとの通信を暗号化しよう!
ここでは、HTTP通信の暗号化の手順を掲載しています。
※CentOS 7のサポートは2024年6月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
SSLモジュールのインストール
ApacheをSSLに対応させるためのモジュールをインストールします。
[root@co7 ~]# yum -y install mod_ssl
インストール:
mod_ssl.x86_64 1:2.4.6-99.el7.centos.1
完了しました!
通信の暗号化とは…?
通常、インターネット上の通信は暗号化されておらず、知識のある人から見れば、いつ、誰が、どのような通信を行ったかが分かる状態で通信を行っています。
近年、セキュリティ意識の高まりなどもあり、通信を常時暗号化して、通信傍受を防ごうという動きが活発になっています。
通信の暗号化(HTTPS)
HTTP通信を暗号化するためには、事前にSSLの設定を行っておく必要があります。
今回は、Let's Encryptを使って証明書を発行したものとして話を進めます。自己発行の証明書の場合は各自ファイル名等を読み替えてください。
暗号化モジュールの設定を行います。
[root@co7 ~]# vi /etc/httpd/conf.d/ssl.conf
#DocumentRoot "/var/www/html"
↓
DocumentRoot "/var/www/html"
#ServerName www.example.com:443
↓
ServerName mhserv.info:443 (取得したドメイン)
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
↓
SSLCertificateFile /etc/letsencrypt/live/mhserv.info/cert.pem
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓
SSLCertificateKeyFile /etc/letsencrypt/live/mhserv.info/privkey.pem
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
↓
SSLCertificateChainFile /etc/letsencrypt/live/mhserv.info/chain.pem
SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
↓
SSLCACertificateFile /etc/letsencrypt/live/mhserv.info/fullchain.pem
暗号化通信を行いたいディレクトリを変更する場合は"DocumentRoot"の設定を変更してください。
上の設定では、/var/www/html内のファイルに対し、HTTPS通信を行うようになります。
SSLキーの更新忘れ防止
暗号化キーには有効期限があり、更新を忘れると警告が表示されたり、アクセスができなくなったりします。
更新時期が近くなるとお知らせをしてくれるcrypto-utilsをインストールしておきましょう。
[root@co7 ~]# yum -y install crypto-utils
インストール:
crypto-utils.x86_64 0:2.4.1-42.el7
依存性関連をインストールしました:
perl-Newt.x86_64 0:1.08-36.el7
完了しました!
ファイアウォールの設定
最後にファイアウォールの設定を行います。
Webサーバへアクセスできるよう、ファイアウォールで許可をしてあげます。
[root@co7 ~]# firewall-cmd --permanent --add-service={http,https}
success
[root@co7 ~]# firewall-cmd --reload
success
PHPの設定へと続きます。
PHPへ
参考にしたサイト様
今回新しく登場したコマンド
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他