【Apache】Apache ~ Linux / SSL設定編 ~

 【1】ApacheSSL通信を実現するには

* SSLモジュール「mod_ssl」を利用する
 => OpenSSLを利用しているので、事前にインストールしておく必要がある

 【2】設定環境例

 * OS : CentOS7
 * Web Server : Apache/2.4.6

 【3】事前準備

1)Apacheのインストール

* 以下の関連記事を参照のこと

ApacheLinux / 初期設定編 ~
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

関連記事

ApacheLinux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2016/08/15/233305
OpenSSL ~ Linux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2014/08/21/001440