【Ubuntu】HTTPSサーバを設定。

さて、自宅のノートパソコンで稼働している Ubuntu のウェブサーバーに SSL サービスを導入してみましょ。

普通に Apache2 をインストールしていて、それが稼働しているのならば作業は簡単。まずは apache に SSL モジュールを読み込んで、

$ sudo a2enmod ssl

設定を読み込んで、

$ sudo a2ensite default-ssl

Apache2 を再起動。

$ sudo service apache2 restart

これだけ。

設定を何も弄っていなければ、公開ディレクトリは /var/www/html になっています。これを自分のホームディレクトリにある public_html に変更したいならば、エディタで /etc/apache2/sites-available/default-ssl.conf を開いて、最初のほうにある

DocumentRoot /var/www/html

DocumentRoot /home/your_dir/public_html

に書き換えて apache2 を再起動。

規定の設定ならば、ポート 443 が開くはずです。チェックしてみる。

$ ss -lnt
ssl170410_01.png

大丈夫そうです。

続いてウェブブラウザから "https://自分のIPアドレス/" だとか "https://自分のホスト名/" だとか "https://localhost/" にアクセスしてみる。

ブラウザでセキュリティエラーが出る筈。以下は Chrome での例。

ssl170410_02.png

公的な SSL 証明書ではなく、いわゆる自己署名を使っているせいなので、ローカル環境であれば問題はないでしょう。「詳細設定」→ 「localhostにアクセスする(安全ではありません)」 をクリックして、正しくホームページが表示されるかどうかチェック。

どうでしょ。ちゃんと表示されました?

ウチでは、一部のページで Internal Server Error が出ました。エラーログ(/var/log/apache2/error.log)をチェックしてみると、こんなエラーが…。

/home/my_dir/public_html/.htaccess: php_flag not allowed here

.htaccess での設定の上書きが許可されていないようなので、上記 default-ssl.conf に設定を追加。以下の内容を default-ssl.conf の <VirtualHost> 〜 </VirtualHost> 内に記述します。

<Directory /home/my_dir/public_html/>
      AllowOverride All
</Directory>

そして apache を再起動。

はい、ひとまず作業は終了。

カテゴリ: