UbuntuでSSLの設定をする

/etc/apache2/sites-available/default-ssl.conf
を触って設定します。
バーチャルホストの設定に証明書のパスを加えるだけという感じなので、特に問題ないかと思います。
<IfModule mod_ssl.c>
<VirtualHost _default_:443>

ServerAdmin webmaster@localhost ← 適当に
ServerName www.example.com ← 対象のドメイン
DocumentRoot /home/user/www ← ドキュメントルート

<Directory "/home/user/www"> ← これ入れてやらないと403エラーになった
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /etc/apache2/ssl/sslcrt.pem ← 証明書
SSLCertificateKeyFile /etc/apache2/ssl/sslkey.pem ← キー

........(中略).........

SSLCertificateChainFile /etc/apache2/ssl/sslca.pem ← 中間証明書

........(中略).........

</VirtualHost>
</IfModule>

バーチャルホストを有効にする
# a2ensite default-ssl

このコマンドが肝。mod sslを有効にします。
# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
service apache2 restart

で、再起動しなさいと言われるので再起動。

なんかSSLでアクセスすると403になってしまうことがあって、何でだろと思っていたら、
client denied by server configuration: /home/user/www/
というエラーが出ていたんですね。権限がないというか読み込んでいないというか。
Require all granted
を加えてあげたら何とか普通に動きました。しかし、これ設定していない場合のApacheでは403なんて出なかったんですが、何がおかしいんでしょうかね。いろいろ複雑です。