Webサーバー間の暗号化(Apache+mod_ssl)の構築 合計:
昨日:
今日:
更新日:2008/4/26
<<ホームへ戻る

webサーバー間を、暗号化するためmod_sslを導入する。これにより、https://〜でアクセスしたとき、Webサーバー間は、暗号化される。

 
◆mod_sslのインストール <<TOP

CENTOS5での説明となっております。yumで普通にインストールする。
[root@server ~]# yum -y install mod_ssl
Loading "downloadonly" plugin
Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Setting up Install Process
Setting up repositories
     ・
     ・ 
Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 mod_ssl                 i386       1:2.2.3-11.el5_1.centos.3  updates            84 k
Installing for dependencies:
 distcache               i386       1.4.5-14.1       base              119 k

Transaction Summary
=============================================================================
Install      2 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 203 k
Downloading Packages:
(1/2): mod_ssl-2.2.3-11.e 100% |=========================|  84 kB    00:00     
(2/2): distcache-1.4.5-14 100% |=========================| 119 kB    00:00     
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: distcache                    ######################### [1/2] 
  Installing: mod_ssl                      ######################### [2/2] 

Installed: mod_ssl.i386 1:2.2.3-11.el5_1.centos.3
Dependency Installed: distcache.i386 0:1.4.5-14.1
Complete!
[root@server ~]# 
      

◆SSL設定 <<TOP

@、サーバ用秘密鍵作成

[root@server ~]# cd /etc/pki/tls/certs/


[root@server certs]# make server.key
umask 77 ; \
        /usr/bin/openssl genrsa -des3 1024 > server.key
Generating RSA private key, 1024 bit long modulus
.++++++
.............++++++
e is 65537 (0x10001)
Enter pass phrase: ← 任意のパスワードの設定(表示されない)
Verifying - Enter pass phrase: ← 確認のためにもう一回

[root@server certs]# openssl rsa -in server.key -out server.key
          ↑ server.keyからのパスフレーズ削除
Enter pass phrase for server.key: ← 秘密鍵作成時のパスワード応答
writing RSA key
[root@server certs]#
      

サーバー用秘密鍵からパスワードを削除するのは、Webサーバー起動時にパスワードを要求されないようにするため 。

A、サーバー用証明書作成

[root@server certs]# make server.crt
umask 77 ; \
        /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 365 -out server.crt -set_serial 0
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: JP ← 国名応答
State or Province Name (full name) [Berkshire]:kanagawa ← 都道府県名応答
Locality Name (eg, city) [Newbury]:kawasaki ← 市区町村名応答
Organization Name (eg, company) [My Company Ltd]:arisonsvr.org ← 何でもいい
Organizational Unit Name (eg, section) []: ← 空エンター
Common Name (eg, your name or your server's hostname) []:arisonsvr.org ← ホスト名応答
Email Address []:webmaster@arisonsvr.org ← 管理者メールアドレス応答

[root@server certs]#
      

B、SSL設定ファイルの編集

[root@server certs]# vi /etc/httpd/conf.d/ssl.conf
        ・
        ・

# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    ↓ サーバー用証明書の場所を指定
SSLCertificateFile /etc/pki/tls/certs/server.crt


#   Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key     ↓ サーバー用秘密鍵の場所を指定 SSLCertificateKeyFile /etc/pki/tls/certs/server.key # General setup for the virtual host, inherited from global configuration #DocumentRoot "/var/www/html"     ↓ コメントを外す DocumentRoot "/var/www/html"

 

   
◆設定の編集を反映する <<TOP

@、編集の反映

[root@server ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

[root@server certs]# 
		  

A、ポート443番をオープンする
ルーター側でポート443をオープンする。 ルーターのポートオープンについては、こちらを参照。

ポートチェック【外部からポート開放確認】などで、外部からアクセスできるのか確認できます。
「host名」にサーバー名(例:arisonsvr.org)、「port番号」に443と入力して「ポートチェック」ボタンをクリックし、
「ホスト=arisonsvr.org ポート=443 にアクセスできました。」と表示されることを確認。

 
◆Webサーバー暗号化の確認 <<TOP

https://サーバーIPアドレス/にアクセスして次の画面が現れる

このサイトの閲覧を続行する(推奨されません)をクリックしてページが表示されればOK。

証明書のエラーを回避するには、次の画面のところをクリックする。

上記の証明書のエラーのところをクリックする。すると次の画面が出てくる。

上記の証明書の表示のところをクリックする。すると次の画面が出てくる。

証明書のインストールのところをクリックする。すると次の画面が出てくる。

次へをクリック。すると次の画面が出てくる。

次へをクリック、すると次の画面が出てくる。

完了をクリックする。すると、次の画面が出てくる。

はい、をクリックする。この作業は、一度行えば、次から、警告の画面は、表示されなくなる。

 
 
  <<TOP