【1】ApacheでSSL通信を実現するには
* SSLモジュール「mod_ssl」を利用する => OpenSSLを利用しているので、事前にインストールしておく必要がある
【2】設定環境例
* OS : CentOS7 * Web Server : Apache/2.4.6
【3】事前準備
1)Apacheのインストール
* 以下の関連記事を参照のこと
Apache ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2016/08/15/233305
2)OpenSSLのインストール
* 以下の関連記事を参照のこと => 今回は、「【2】yumでインストールする」でインストールした
OpenSSL ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2014/08/21/001440
3)カギのペア作成と証明書作成
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2016/11/12/011536
cd /etc/httpd/conf
su
[1] Webサーバの秘密鍵(プライベートキー)の生成
openssl genrsa -des 1024 > server.key
[2] Webサーバの公開鍵の生成(「-days 9999」は利用可能日数)
openssl req -days 9999 -new -key server.key > server.csr
[3] (オレオレ)サーバ証明書の作成(「-days 9999」は利用可能日数)
openssl x509 -days 9999 -in server.csr -req -signkey server.key > server.crt
[4] パスフレーズの削除
mv server.key server.key.bak openssl rsa -in server.key.bak > server.key
【4】設定手順
1)SSLモジュール「mod_ssl」のインストール
# 「mod_ssl」がインストールされているかを確認する #(何も表示されなければ、インストールする) rpm -qa|grep mod_ssl sudo yum install mod_ssl -y # インストールされたかを確認 rpm -qa|grep mod_ssl
2)ssl.confを修正する
sudo vi /etc/httpd/conf.d/ssl.conf
主な項目
SSLCertificateFile : サーバ証明書 SSLCertificateKeyFile : 秘密鍵
** 修正例:サーバ証明書
#【修正前】 SSLCertificateFile /etc/pki/tls/certs/localhost.crt #【修正後】 SSLCertificateFile /etc/httpd/conf/server.crt
修正例:秘密鍵(プライベートキー)
#【修正前】 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key #【修正後】 SSLCertificateKeyFile /etc/httpd/conf/server.key
3)Apacheを再起動
systemctl restart httpd # 再起動した後に、ブラウザで「https://[ホスト名]」でアクセスできるはず # (オレオレ証明書なので警告表示になるが...)
参考文献
http://server-setting.info/centos/apache-ssl-setting.html
http://dotnsf.blog.jp/archives/3181024.html
http://qiita.com/bageljp@github/items/6b9876b7571852284ead
関連記事
Apache ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2016/08/15/233305
OpenSSL ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2014/08/21/001440