Webサーバ上で色々なWebアプリを動かしているのでSSL化してセキュリティの確保をしてみます。
SSLをするには証明書が必要なわけですが、いわゆるオレオレ証明書ではなく無料で証明書を発行してくれるStartSSLのサービスを使ってみます。

最初にWebサーバであるApacheがSSLに対応しているか確認しておきます。
mod_ssl.cが読み込まれていればOKです。

# /usr/local/apache2/bin/httpd -l |grep ssl
  mod_ssl.c

StartSSLのサイトでアカウントを作成して証明書の発行手続きをします。
証明書を発行してもらうためにはCSRが必要なのですがStartSSLの場合はCSRがなくても大丈夫です。
CSRを作成する場合は以下の手順で行います。

1.サーバの秘密鍵を作成
秘密鍵生成時にランダムな値が必要になるので/dev/randomを使用します。

# openssl genrsa -rand /dev/random -des3 -out kaju.jp.key 1024

2.CSRを作成
先ほど作った秘密鍵(kaju.jp.key)を使ってCSRを作成します。
証明書に含める情報を色々聞かれるので入力していきます。
※Common Nameは実際に動かすサーバのFQDNと同じにする必要があるので注意。

# openssl req -new -key kaju.jp.key -out kaju.jp.csr

3.サーバ証明書を発行
CSRをstartsslに送付するとサーバ証明書が発行されるのでWebサーバ上に保存します。

4.CA証明書と中間CA証明書の入手
startsslのCA証明書と中間CA証明書をWebサーバ上に保存します。

# wget https://www.startssl.com/certs/ca.crt
# wget https://www.startssl.com/certs/sub.class1.server.ca.crt

次にApacheの設定を行います。
【/usr/local/apache2/conf/httpd.conf】

Include conf/extra/httpd-ssl.conf

【/usr/local/apache2/conf/extra/httpd-ssl.conf】

Listen 443

<VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache2/htdocs"
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
    ErrorLog /var/log/httpd/ssl_default_error.log
    TransferLog /var/log/httpd/ssl_default_access.log
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /usr/local/apache2/conf/kaju.jp.crt
    SSLCertificateKeyFile /usr/local/apache2/conf/kaju.jp.key
    SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.crt
    SSLCACertificateFile /usr/local/apache/conf/ca.crt

CustomLog /var/log/httpd/ssl_request.log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

設定を確認してOKだったらApacheを再起動します。

# /usr/local/apache2/bin/apachectl configtest
Syntax OK

# /usr/local/apache2/bin/apachectl start
Apache/2.2.8 mod_ssl/2.2.8 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server kaju.jp:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

プロセスの確認をしておきます。

# ps aux |grep httpd
root      9897 18.0  2.0 55948 10512 ?       Ss   14:53   0:01 /usr/local/apache2/bin/httpd -k start
apache    9898  0.0  1.6 55756 8456 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9900  0.0  1.6 55948 8592 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9901  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9902  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9903  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9904  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start

# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN