【Linux】【Apache】 Linux上の Apache でSSL通信を行う

  ■ ApacheSSL通信を実現するには...

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

 

  ■ 設定環境

 * OS : CentOS7
 * Web Server : Apache/2.4.6

 

  ■ 事前準備

  Apacheのインストール

 * 以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/36300671.html

  OpenSSLのインストール

 * 以下の関連記事を参照のこと(今回は、「【2】yumでインストールする」でインストールした)
http://blogs.yahoo.co.jp/dk521123/33899152.html

  カギのペア作成と証明書作成

 * 以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/36499701.html
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


  ■ 設定手順

  【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を修正する

* 主な項目
SSLCertificateFile    : サーバ証明書
SSLCertificateKeyFile : 秘密鍵
* 修正例
sudo vi /etc/httpd/conf.d/ssl.conf
サーバ証明書
【修正前】
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://[ホスト名]」でアクセスできるはず
(オレオレ証明書なので警告表示になるが...)

 

 

  関連記事

  Apache の設定 ~ CentOS編 ~

http://blogs.yahoo.co.jp/dk521123/36300671.html