make-ssl-cert と証明書

Ubuntu Server で Apache2 を動かしてみました。特に使う予定があるわけではないんですが、etch のインストールの間ヒマだったもので。
折角なので SSL で通信できるようにしてみようと思います。そのためには第一種オレオレ証明書が必要ですが、Ubuntu では ssl-cert パッケージに含まれる make-ssl-cert コマンドを使うことで簡単に作成できたりします。Web でググると以下のような記述をよく見かけます。


$ sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

$ sudo vi /etc/apache2/sites-available/ssl
(以下を追記)
SSLCertificateFile "/etc/apache2/ssl/apache.pem"
SSLCertificateKeyFile "/etc/apache2/ssl/apache.pem"

Apache のマニュアルを見ると SSLCertificateFile は証明書、SSLCertificateKeyFile は秘密鍵と書かれています。なんで同じファイルを指定してるんだろう?
$ sudo cat apache.pem してみると、BEGIN RSA PRIVATE KEY と BEGIN CERTIFICATE が両方書かれていたりします。サーバ証明書には公開鍵が含まれていて、これをクライアントに送り、クライアントがそれを使って共通鍵を暗号化するのが SSL 通信の基本だったと理解しているのですが、証明書ファイルに秘密鍵がくっついてちゃまずいんじゃないでしょーか?
/usr/sbin/make-ssl-cert の中を見てみると、以下のような感じ。


openssl req -config $TMPFILE -new -x509 -nodes -out $output -keyout $output > /dev/null 2>&1
out と keyout が同じファイルを指してますね。これってものすごくおかしい気がするんですが、私の勘違いだったりするんでしょうか? あるいは make-ssl-cert ってのは、出来上がったファイルを使う前に切り離すのが前提のフロントエンドだったりするのかな。