TOP » Apache HTTP Server で Web サーバー構築 » Apache HTTP Server 2.2 » mod_ssl で HTTP 通信の暗号化

mod_ssl で HTTP 通信の暗号化

Apache をインストールするときにモジュールとして組み込んだ mod_ssl を使ってサーバーとクライアント間の HTTP 通信の暗号化行います。
Apache を使って SSL 通信を行うために必要なファイルは、CSR ファイル(サーバーの証明書発行の署名要求)と秘密鍵と証明書です。

SSL 通信に必要なディレクトリとファイルの作成

CSR ファイル、秘密鍵、証明書を格納するためのディレクトリを作成します。(Apache 1.3 では不要)

# mkdir /usr/local/httpd/conf/ssl.csr
# mkdir /usr/local/httpd/conf/ssl.key
# mkdir /usr/local/httpd/conf/ssl.crt

CSR ファイルと秘密鍵を作成します。

# openssl req -new -nodes -keyout /usr/local/httpd/conf/ssl.key/server.key -out /usr/local/httpd/conf/ssl.csr/server.csr

Generating a 1024 bit RSA private key
writing new private key to ‘/usr/local/httpd/conf/ssl.key/server.key’
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]:Osaka都道府県を入力
Locality Name (eg, city) [Newbury]:Osaka-shi市区町村を入力
Organization Name (eg, company) [My Company Ltd]:honana会社名を入力
Organizational Unit Name (eg, section) []:SSL部署を入力
Common Name (eg, your name or your server’s hostname) []:server.honana.comサーバーのFQDN
Email Address []:.「.」で入力を省略

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:.「.」で入力を省略
An optional company name []:.「.」で入力を省略


# openssl x509 -in /usr/local/httpd/conf/ssl.csr/server.csr -out /usr/local/httpd/conf/ssl.crt/server.crt -req -signkey /usr/local/httpd/conf/ssl.key/server.key -days 3650

Signature ok
Getting Private key

Apache の設定

Apache の設定ファイル httpd.conf を編集して SSL の設定ファイル extra/httpd-ssl.conf を読み込むように設定します。

# vi /usr/local/httpd/conf/httpd.conf
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.confコメントアウトされている行を有効にする

extra/httpd-ssl.conf ファイルを編集して SSL の設定を行います。

# vi /usr/local/httpd/conf/extra/httpd-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.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
#SLCertificateFile /usr/local/httpd-2.2.4/conf/server.crt
#SSLCertificateFile /usr/local/httpd-2.2.4/conf/server-dsa.crt
SSLCertificateFile /usr/local/httpd/conf/ssl.crt/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 /usr/local/httpd-2.2.4/conf/server.key
#SSLCertificateKeyFile /usr/local/httpd-2.2.4/conf/server-dsa.key
SSLCertificateKeyFile /usr/local/httpd/conf/ssl.key/server.key

Apache の設定ファイルを変更した後は Apache を再起動する必要があります。

# /usr/local/httpd/bin/apachectl graceful
Fedora のインストール
OpenSSH で SSH サーバー構築
NTP で時刻情報サーバー構築
Apache HTTP Server で Web サーバー構築
MySQL でデーターベースサーバー構築
PostgreSQL でデーターベースサーバー構築
PHP で Web アプリケーションサーバー構築
qmail でメールサーバー構築
Samba でファイルサーバー構築
BIND でネームサーバー構築
Tomcat で Web アプリケーションサーバー構築
ProFTPD で FTP サーバー構築
CMS でサイト構築
snort でネットワーク進入探知システム構築