SSL 通信暗号化機能を導入する

SSL 通信暗号化パッケージをインストールする

 SSL 通信暗号化パッケージ (mod_ssl) は、yum コマンドを使用してインストールしますので、パッケージ管理の設定が完了していることを確認して下さい。

[ Fedora 7 ]

[root@web ~]# yum install mod_ssl


サーバー秘密鍵の作成について

 サーバー証明書を作成する際に必要なサーバー秘密鍵を作成します。

[ Fedora 7 ]

サーバー秘密鍵の保存先ディレクトリに移動する

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


サーバー秘密鍵を作成する

[root@web 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@web certs]# openssl rsa -in server.key -out server.key

Enter pass phrase for server.key:サーバー秘密鍵のパスワードを入力する
writing RSA key

サーバー公開鍵の作成について

 サーバー証明書を作成する際に必要なサーバー公開鍵を作成します。 また、サーバー公開鍵を作成する際に必要な情報を下記に示します。

[ Fedora 7 ]

サーバー公開鍵の保存先ディレクトリに移動する

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


サーバー公開鍵を作成する

[root@web certs]# make server.csr

umask 77 ; ¥
        /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
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]:Saitama
サーバーを設置する都市名
Locality Name (eg, city) [Newbury]:Saitama
サーバーを設置する組織名
Organization Name (eg, company) [My Company Ltd]:[ Enter ]
サーバーを設置する組織の部門名
Organizational Unit Name (eg, section) []:[ Enter ]
サーバー名 (FQDN)
Common Name (eg, your name or your server's hostname) []:web.i2kt.com
サーバーの管理者メールアドレス
Email Address []:webmaster@i2kt.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:[ Enter ]
An optional company name []:[ Enter ]

サーバー証明書の作成について

 サーバー秘密鍵、サーバー公開鍵を使用してサーバー証明書を作成します。

[ Fedora 7 ]

サーバー証明書の保存先ディレクトリに移動する

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


サーバー証明書を作成する

[root@web certs]# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 365


サーバー公開鍵、サーバー秘密鍵、サーバー証明書のアクセス権限を参照モード (所有者のみ) に変更する

[root@web certs]# chmod 400 server.*


[root@web certs]# ls -la server.*

-r-------- 1 root root    733 2007-09-28 16:36 server.csr [ サーバー公開鍵 ]
-r-------- 1 root root    887 2007-09-28 16:11 server.key [ サーバー秘密鍵 ]
-r-------- 1 root root   1013 2007-09-28 16:53 server.pem [ サーバー証明書 ]

SSL 通信暗号化機能の設定について (ウェブサーバーの設定)

 ウェブサーバーの SSL 通信暗号化機能に関するオプション設定は、/etc/httpd/conf.d/ssl.conf ファイルを編集します。

[ Fedora 7 ]

[root@web ~]# vi /etc/httpd/conf.d/ssl.conf

#   Server Certificate:
# 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/server.pem

#   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/certs/server.key

ウェブサーバーを再起動する

 SSL 通信暗号化機能の設定を反映するため、ウェブサーバーを再起動します。

[ Fedora 7 ]

[root@web ~]# /etc/rc.d/init.d/httpd start

httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]