■CSR作成
まずは、CSRの作成手順ですが、結構いろいろと説明しているサイトがあるのですが、どれも微妙に違うところがあってわかりにくかったので、私が実際にやったやり方を記録しておきます。

ちなみに、今回の私の環境は、さくらインターネットのVPSで、CentOS5+Apache2の環境です。
証明書は、RapidSSLでapacheとOpenSSLはインストールしてある状態です。

さて、まずはじめにCSR作成の途中で入力しなければならない次の項目についてあらかじめ準備しておきます。

コモンネーム sample.jp
confまでのパス /etc/httpd/conf/
秘密鍵ファイル名 samplejp.2011.key
秘密鍵ファイル名(パスフレーズ) samplejp.2011_withpass.key
CSRファイル名 samplejp.2011.csr
証明書ファイル samplejp.2011.crt
中間証明書ファイル名 samplejp.2011.cst
CSRディレクトリ /etc/httpd/conf/ssl.csr/
証明書ディレクトリ /etc/httpd/conf/ssl.crt/
パスワード ************

※注意点
コモンネームは、wwwを付けるかつけないかは、悩みどころです。www付でCSRを作成するとhttps://www.sample.jpは当然OKですが、https://sample.jpはNGとなります。
www付のサイトが多いようですが、mixi.jpなどはwwwがついていないようです。
今回、少し悩みましたがURLを短くしたかったので、wwwなしで作成しました。

次に、秘密鍵や証明書、中間証明書のファイル名やディレクトリ名は、わかりやすければ何でも構わないということです。
私は、毎年更新することを考えて、年度を入れていますが、このやり方だと毎年ssl.confなどを聞き替えなければならないので、面倒だと思う方は、年度を入れない方がいいと思います。

準備ができたら、いよいよCSRの作成に入ります。

# CSR用ディレクトリを作成します。
$ mkdir /etc/httpd/conf/ssl.csr/


# CSR用ディレクトリに移動します。
$ cd /etc/httpd/conf/ssl.csr

# キーペア(秘密鍵)の作成(2048bitの秘密鍵)
$ openssl genrsa -des3 2048 > samplejp.2011.key


Generating RSA private key, 2048 bit long modulus
.......+++
...........................................................+++
e is 65537 (0x10001)
Enter pass phrase:************(パスワード入力)
Verifying - Enter pass phrase:************(パスワード入力)
$


# キーペア(秘密鍵)を元にしたCSRの作成
$ openssl req -new -key samplejp.2011.key -out samplejp.2011.csr -sha1


Enter pass phrase for test.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]:Tokyo
Locality Name (eg, city) [Newbury]:AAAAA-ku
Organization Name (eg, company) [My Company Ltd]:AAAAAAAA Ltd.(会社名)
Organizational Unit Name (eg, section) []:System(なんでもかまいません)
Common Name (eg, your name or your server's hostname) []:sample.jp
Email Address []:(何も入力せずエンター)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(何も入力せずエンター)
An optional company name []:(何も入力せずエンター)
$

※注意事項
Common Nameが間違えていると、再申請になってしまいますので、www付にするかどうかも含めて、間違いが無いようにしてください。
Organizational Unit Nameは、特に神経質になることはなく、何でもいいようです。


キーペア(秘密鍵)にパスワードを埋め込む
$ openssl rsa < samplejp.2011.key > samplejp.2011_withpass.key
Enter pass phrase:************(パスワード入力)
writing RSA key
$

samplejp.2011_withpass.keyが、パスワードの埋め込まれたキーペア(秘密鍵)です。
※パスワードの埋め込まれたキーペア(秘密鍵)を使用すると、 Apacheの起動時にパスワードの入力を省略できます。

これで、CSRの作成は完了なので、問題が無ければ/etc/httpd/conf/ssl.csr/のフォルダに次の3つのファイルが作成されているはずです。
samplejp.2011.csr
samplejp.2011.key
samplejp.2011_withpass.key

# CSRを確認
$ cat samplejp.2011.csr


-----BEGIN CERTIFICATE REQUEST-----
MIICszCCAZsCAQAwbjELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMRAwDgYD
VQQHEwdDaHVvLWt1MRkwFwYDVQQKExBOZXdzYml0IGNvLixsdGQuMQ8wDQYDVQQL
EwZTeXN0ZW0xETAPBgNVBAMTCGZyZWNvLmpwMIIBIjANBgkqhkiG9w0BAQEFAAOC

------中間省略------

4DPqUdTKd9D58MyIPm08U+LtV6nxkEZCet4yV4kQ3TzLEnC9j+c7LcsLV4VjTJ/d
d5JJa3kfTLnBcdVd7dQBG5xFiSsFsD2fTI79sNZjeOotNp9zsDtqj6e3DSh4kmwN
/Of1R6RMwB/FkDUt2qoC1GomFrPidRk=
-----END CERTIFICATE REQUEST-----


最初の-----BEGIN CERTIFICATE REQUEST-----から、最後の-----END CERTIFICATE REQUEST-----までがCSRです。

SSL証明書の申請をして代金を振り込むと、証明書が発行されてきます。






■サーバー証明書のインストール

サーバー証明書が届いたら、さっそくサーバーにインストールです。

# 証明書用ディレクトリを作成します。
$ mkdir /etc/httpd/conf/ssl.crt/


# 証明書用ディレクトリに移動します。
$ cd /etc/httpd/conf/ssl.crt/

# 証明書ファイルを作成し、証明書を貼り付けます。
$ vi samplejp.2011.crt

-----BEGIN CERTIFICATE-----
MIIEuTCCA6GgAwIBAgIDA6x0MA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT
MRcwFQYDVQQKEw5HZW9UcnVzdCwgSW5jLjEUMBIGA1UEAxMLUmFwaWRTU0wgQ0Ew
HhcNMTExMDIxMTI1MzEwWhcNMTIxMDIzMDkzMDQwWjCB1zEpMCcGA1UEBRMgakx0
bi96WThRQzFpTG11RWpubk1Ma1ZFaUtkbFlIVEoxCzAJBgNVBAYTAkpQMREwDwYD

------中間省略------

eSjcS4o1K5gTCDnbCJrb1frdjJgpiorkl7TfF65DsNpzk6Qd991zps2aW3UE/iCP
t5dFRErjQqj3zDvFX5t+xnc7q1LBOFgBXHyu/j5i8dZD1nFgWHhSwNg2IYo28VnQ
Sy/zEXFwltUkhhNejie8fRol1fPzMbmwl0s+H76Dq8vD6Wph9Uolqj2OXyX9LV3u
VUfegqE7HQT5UEJ+DgtF6MvQs3+gxf7hCkC0UmmDhGk1Go6srq8CAGSdYz7uKCxE
FEX862xhpiH+VwGoGw==
-----END CERTIFICATE-----


中間証明書は、なくてもいいのかもしれないが、今回は設置することに。
クロスルート対応というものらしく、2ブロックになっているが、全部まとめてファイルに貼り付けます。

# 中間証明書ファイルを作成します。
$ vi samplejp.2011.cst

-----BEGIN CERTIFICATE-----
MIID1TCCAr2gAwIBAgIDAjbRMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMTAwMjE5MjI0NTA1WhcNMjAwMjE4MjI0NTA1WjA8MQswCQYDVQQG
EwJVUzEXMBUGA1UEChMOR2VvVHJ1c3QsIEluYy4xFDASBgNVBAMTC1JhcGlkU1NM

------中間省略------

SUNjpWxOJ4cl61tt/qJ/OCjgNqutOaWlYsS3XFgsql0BYKZiZ6PAx2Ij9OdsRu61
04BqIhPSLT90T+qvjF+0OJzbrs6vhB6m9jRRWXnT43XcvNfzc9+S7NIgWW+c+5X4
knYYCnwPLKbK3opie9jzzl9ovY8+wXS7FXI6FoOpC+ZNmZzYV+yoAVHHb1c0XqtK
LEL2TxyJeN4mTvVvk0wVaydWTQBUbHq3tw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE

------中間省略------

dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
-----END CERTIFICATE-----


これで、ファイルがすべてそろいました。

ところで、httpsを有効にするためには、apacheだけでなくmod_sslがインストールされている必要があります。

念のため、mod_sslがインストールされているか確認してみます。

$ rpm -qa | grep mod_ssl
mod_ssl-2.2.3-53.el5.centos.3

もし、mod_ssl-2.2.3-53.el5.centos.3というような表示が出なければ、インストールされていないので、下記のコマンドでインストールします。
apacheの再インストールなどは必要なく、下記のコマンドだけでOKです。

$ yum -y install mod_ssl

次は、ssl.confの編集です。
通常は、/etc/httpd/conf.dのフォルダにssl.confというファイルがあるはずですので、このファイルを編集します。

編集するところは、次の3か所で、

# 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/httpd/conf/ssl.csr/samplejp.2011_withpass.key


# 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/localhost.crt

SSLCertificateFile /etc/httpd/conf/ssl.crt/samplejp.2011.crt



# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

SSLCertificateChainFile /etc/httpd/conf/ssl.crt/samplejp.2011.cst


3か所の修正が終わったら、下記フォルダにあるファイルをchown root:root および chmod 400しておきます。
/etc/httpd/conf/ssl.csr/
/etc/httpd/conf/ssl.crt/

最後にapacheの再起動
/etc/rc.d/init.d/httpd restart


これで、https://sample.jpがブラウザで鍵がついて表示されるはずです。