Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

さくらのVPSを使う その0014 httpsでサブドメインにアクセスしたときのドキュメントルートをそれぞれ設定する

参考にさせて頂いたページ

複数のバーチャルホストでSSL通信の設定を行う|CMS構築の現場から|CMS比較.com

httpdの設定(ssl.conf)

/etc/httpd/conf/httpd.conf

以下のように記述してあるので、今回編集するssl.confもhttpd.confにIncludeされているのがわかる。

#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf

/etc/httpd/conf.d/ssl.confを編集する

複数のバーチャルホストでSSL通信の設定を行う|CMS構築の現場から|CMS比較.com

を参考に進めた。

デフォルトのVirtual Host設定の記述を消す

"デフォルトのVirtual Host設定の記述を消す"と書いてあったので、

<VirtualHost _default_:443>から</VirtualHost>までの有効な記述に#を付けてコメントアウトしてみた。

NameVirtualHost *:443を追記する

さっき<VirtualHost default:443>とかいろいろコメントアウトしたわけだけど、その上の行に

NameVirtualHost *:443

を記述した。

Virtual Hostの設定をする

参考にさせて頂いたページと、ssl.confのデフォルト記述の内容を合わせて、ssl.confの一番下の行に記述した。

とりあえず以下のような感じで書いた。

<VirtualHost *:443>
  DocumentRoot /var/www/html/hoge
  ServerName hoge.example.com
  ErrorLog /var/www/logs/hoge-error.log
  LogLevel warn
  CustomLog /var/www/logs/hoge-access.log common
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  SSLCertificateFile /etc/pki/tls/certs/localhost.crt
  SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
  #SSLCertificateChainFile
  SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
  <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
  </Files>
  <Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
  </Directory>
  <Directory /var/www/html/hoge >
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

apacheを再起動する

以下のコマンドで再起動する。

service httpd restart

あとはブラウザでhttps://〜〜〜にアクセスして確認してみる。

もともとssl.confに記述してあって、コメントアウトした部分は何が書かれていたのか学習しておく

これについては下記のページを読んだ。

httpdの設定(ssl.conf)

コメントアウトした行を抜粋すると以下

<VirtualHost _default_:443>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>