HTTPSを使用してMoodleサイトを運用することには多くのメリットがあります。特にセッションとパスワードに関するセキュリティのレベルが向上します。
手順
始める前に
使用しているすべてのコンテンツがhttpsに対応していることを確認してください。確認にはHTTPS変換ツールを使用します。
ステージング環境があることを確認してください。HTTPSは、本番サイトを更新するのではなく、まずステージング環境でセットアップするとよいでしょう。httpsへの変換には時間がかかり、コンテンツを更新する必要もあります(下記参照)。
SSL証明書のセットアップ
最初に行う必要があるのは、SSL証明書の取得です。SSL証明書は自分で作成することもできますが、それが役立つのは開発目的の場合だけです。そうではなく、証明書が公に検証されるよう、認証局からSSL証明書を取得するとよいでしょう。
証明書のコストはこれまでやや負担が大きく、年間数ドルから数百ドルまでさまざまな価格で提供されています。予算が限られている場合には、Internet Security Research Group(ISRG)による新しい取り組みが「手頃な価格」を実現しています。ドメイン認証の証明書をLet's Encryptから無料で取得できます。Let's Encryptは、証明書のインストールと管理のプロセスをできるだけ手間のかからないものにすることも目指しており、多くの方法とクライアントが用意されています。
サーバのセットアップ
次に、ウェブサーバでSSLを有効にして、証明書を追加する必要があります。このプロセスは、選択したウェブサーバによって異なります。
プロキシやロードバランサを使用している場合は、構成によっては、プロキシサーバにSSL証明書をセットアップすることになるでしょう。
Moodleのセットアップ
基本的なMoodleサイトでは、httpsのセットアップは簡単です。config.phpを編集し、$CFG->wwwrootのhttp://をhttps://に変更するだけです。
ただし、プロキシやロードバランサを使用している場合は、構成によっては、$CFG->sslproxyを1に設定し、MoodleサーバではSSLを使用しないようにする必要があるかもしれません。そうすると、ロードバランサまたはプロキシサーバは、Moodleサイトと直接通信しながら、クライアントにはSSL経由で配信できます。
HTTPアドレスから新しいHTTPSアドレスへのリダイレクト
サイトの現在のhttp://アドレスを使用しているユーザが、「申し訳ございません、セキュリティ上の理由からhttpsアクセスのみ許可されています」のようなメッセージのページを表示されるのではなく、自動的にhttps://アドレスにリダイレクトされるよう、リダイレクトを追加するとよいでしょう。
リダイレクトを行う方法は、ウェブサーバ、ホスティング、そして好みのやり方に応じていくつかあります。Apacheウェブサーバでの一般的な解決策は、次のような書き換えルールを含む.htaccessファイルを作成することです。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourmoodle.com/$1 [R,L]
または、一般的には次のとおりです。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ {SERVER_NAME}/$1 [R,L]
使用しているウェブサーバとホストでこれを行う現在の方法を必ず調べてください。例えば、ハウツー記事Force HTTPS connections in an Apache server environmentなどがあります。
コンテンツの更新
すべての埋め込みコンテンツが、httpでリクエストされないように変更する必要があります。リンクは問題ありません。ただし、画像やiframe、SCORMモジュール、LTI外部ツールは更新する必要があります。外部ツールは、iframe内ではなく新しいウィンドウで開くように変更すれば、問題なく動作します。
この作業を支援する新しいツールがMoodle 3.4で追加されました。このツールにはサイト管理 > セキュリティ > HTTPセキュリティ > HTTPS変換ツールのリンクからアクセスできます。詳しくはMDL-46269をご覧ください。