シェルスクリプトマガジン

第22回 WebサーバーをHTTPSに対応させる(Let’s Encrypt)

Apacheの通信をHTTPS化する

証明書を取得する前に、Apacheの通信をHTTPSのみにします。リモートアクセス用パソコンからUbuntu Serverにログインして、次のコマンドを実行します。「[sudo] taro のパスワード:」のように表示されたら、ユーザーのパスワードを入力してください。

最初のコマンドで「mod_ssl」という暗号化機能モジュールを有効にします。次のコマンドでHTTPSでアクセスするための設定(「/etc/apache2/sites-available/default-ssl.conf」ファイル内に記述)をApacheに組み込みます。最後のコマンドでApacheを再起動し、それらを反映します。
前回説明したファイアウォールを有効にしていたら、

を実行してHTTPSが利用するTCP「443」番ポートへのアクセスを許可してください。
以上で、HTTPSの設定は完了です。UbuntuのApacheには、自前で作成した証明書が用意されているので、そのままでHTTPSによるアクセスができます。リモートアクセス用パソコンでWebブラウザーを開いて「https://Ubuntu ServerのIPアドレス/」にアクセスしてみてください。正式な証明書ではないので、図4(図2と同じ)のメッセージが表示されます。

図4 HTTPS通信のための証明書が正式でない場合に表示されるメッセージ

最後に「http://Ubuntu ServerのIPアドレス/」のようにHTTPでアクセスした場合もHTTPSに切り替わるように、

を実行してテキストエディタで「/etc/apache2/sites-enabled/000-default.conf」ファイルを開き、「DocumentRoot /var/www/html」(12行目)の下に次の1行を追記します。

この設定を反映するために、

を実行します。リモートアクセス用パソコンのWebブラウザーで「http://Ubuntu ServerのIPアドレス/」にアクセスし、図4のメッセージが表示されることを確認します。