SSL設定について

SSL設定について

- Em Mano の投稿
返信数: 11

はじめまして、初めて投稿させていただきます。

基本的な質問で申し訳ありませんが、
Webやフォーラムを検索してみても解決できませんでしたので、質問させてください。

MoodleをSSL接続で運用しようと思っております。
公的機関へのSSL認証証明書の発行はこれから行なう予定です。

SSL接続にするためには
1. サーバー(IISを使用)の設定
2. PHPの設定
3. moodleの設定
の3箇所の設定が必要ということでよろしいでしょうか。

またMoodleの管理>セキュリティ>HTTPセキュリティに
「ログインにHTTPSを使用する」というチェックボックスがありますが、
Moodleの全ページをHTTPSにするためには別の設定が必要なのでしょうか?

どなたかご教示いただければ幸いです。

環境は以下の通りです。

・Windows2008Server R2
・IIS7.5
・PHP 5.2.10
・fs_moodle 1.9.5+

以上、よろしくお願い致します。

Em Mano への返信

Re: SSL設定について

- Tatsuya Shirai の投稿

 私はSSLを使用しないので,とりあえず分かるところだけ回答します.

 フルにhttpで接続をするのであれば,”ログインにHTTPSを使用する”は設定不要でしょう.

 単に,config.phpの$CFG->wwwroot = の設定を "http://www.youdomain.com/moodle"ではなく,"https://www.yourdomain.com/moodle"のように,頭のところをhttpからhttpsに変更するだけで良いはずです.

Em Mano への返信

Re: SSL設定について

- Hiroyuki H の投稿

こんにちは。私はWindowsサーバでmoodleを本運用したことがありませんが、理解している範囲でお答えします。

IISにSSL証明書の発行を証明機関から受けるために、CSRを作成します。おおまかな手順はこのような感じです。https://www.digitrust.jp/?page_id=141 (識別名プロパティ、暗号化サービス、ビット長などは利用される証明機関側の指定に従います) 作成したCSRを添付して証明機関に証明書発行申請を行います。

次に発行された証明書を使用して、IISでHTTPS接続を有効にします。「IISマネージャ」→「Webサイトホーム」→「バインド」から「追加」をクリックして「https」を選択し、「SSL証明書」で発行を受けた証明書を選択します。moodleがインストールされたサイト/仮想ディレクトリのホームで「SSL設定」を開いて、「SSLが必要」をチェックします。

PHP5の場合、php/extrasの中にlibeay32.dll とssleay32.dllがありますのでC:/WINDOWS/system32にコピーします。php.iniにopensslのDLLを読み込ませる設定(;extension=php_openssl.dll)がありますので、当該箇所の;を外して有効にします。

moodle側の設定については白井先生のご投稿の通りだと思います。

ただし、サイト全体をSSL接続すると、サーバのリソースが暗号化処理にかなり使われてしまい、SSLハンドシェークのオーバーヘッド(負荷)が大きくなります。利用者が多い場合などには、SSLアクセラレータという暗号化処理を専門に行うハードウェア(ブラウザはHTTPSでmoodleに接続するが、通信経路の途中でSSLアクセラレータが暗号化処理を行ってHTTPに変換してmoodleサーバに渡すことでサーバ側の負荷を抑える)を導入する場合がありますが、以前開発者フォーラムで以下のスレッドで注意すべき情報のご投稿がありましたので、必要であれば併せてご参照ください。http://moodle.org/mod/forum/discuss.php?d=142273

Em Mano への返信

Re: SSL設定について

- Em Mano の投稿
お世話になります。

ご回答ありがとうございました。
お2人にご指摘いただいた部分に注意して設定を行なおうと思います。
Em Mano への返信

Re: SSL設定について

- Tatsuya Shirai の投稿

 せっかくですので,IISでSSL通信によるサイトを構築する上でのノウハウ(失敗の記録^^;)をこちらに実況していただけると今後の参考になります.

 その際に参考にした書籍やWebページのリンクを報告して頂くのも有用です.

 たとえば,"IIS, SSL" で検索をすると,以下のようなWindowsServer2003向けのMicrosoft社の資料が発見できます.

http://technet.microsoft.com/ja-jp/library/dd939069.aspx

Em Mano への返信

Re: SSL設定について

- Mikio Ikeda の投稿

四日市大学ではSSL設定にしており、

白井先生からのご指摘どおり、apache ウェブサーバーのSSL設定を行い、php に ssl モジュールを追加し、
単に,config.phpの$CFG->wwwroot = の設定を "http://www.youdomain.com/moodle"ではなく,"https://www.yourdomain.com/moodle"のように,頭のところをhttpからhttpsに変更するだけで良いはずです.
でした。
ただし、どこかのモジュール内で、http:// を決め打ちしてoverwriteしているところがあったので、直した記憶があります。このバグは、この時に作者にフィードバックしたので、最近のバージョンでは直っているとは思います。非標準のモジュールを使用する場合には注意が必要かもしれません。

SSL アクセラレータは使用していませんが、現在のところは特に問題は生じていません。大体の状況は

  • アクティブなコースの数 30程度
  • アクティブなユーザの数 300名程度
  • 累計ユーザー数1000名程度
  • 同時login数 最大100程度
です。

評点平均: お役立ち度: ★★★★★★☆ (1)
Em Mano への返信

Re: SSL設定について

- Em Mano の投稿
お世話になっております。

報告が遅くなりましたが、無事にSSLの設定が完了いたしました。
色々検討したのですが、今回はログイン画面のみSSL対応にすることに致しました。

簡単ですが、手順を掲載いたします。
(証明機関ごとに手順は異なる可能性があります。)

【サーバーの設定】
1.SSLの設定をしたいサーバのIISマネージャーからCSRを作成する。
2.作成したCSRを元に、契約を行なった証明機関に証明書発行申請を行なう。
3.証明機関から申請内容の確認などの審査を受ける。
4.証明機関が発行したSSLサーバ証明書・中間CA証明書をDLする。
5.サーバのIISマネージャーから4でDLした証明書を元に設定を行なう。

(1と5に関しては証明機関のサイトに詳細なマニュアルがありました。)

【Moodleの設定】
Moodleのconfig.phpの $CFG->wwwroot を以下のように書き換える。
if (isset($_SERVER['HTTPS'])) {
$CFG->wwwroot = 'https://ホスト名/moodle';
} else {
$CFG->wwwroot = 'http://ホスト名/moodle';
}

Moodleの管理>セキュリティ>HTTPセキュリティから
「ログインにHTTPSを使用する」にチェックを入れる。


【PHP】
opensslが有効になっているかを確認。

以上です。
特に問題も無くインストールできました。

回答いただいた皆様ありがとうございました。
評点平均: お役立ち度: ★★★★★★★ (2)
Em Mano への返信

Re: SSL設定について

- 雄一 川口 の投稿
今、さくらのレンタルサーバでmoodle1.9を運用していて、新年度に向けて、これを2.2にアップグレードしています。
Moodle1.9のときは、確かにconfig.phpでwwwroot->'https://...'と指定するだけでサイト全体にhttpsでアクセスできるようになりました。
しかし、moodle2.2の場合、この設定だとログインボタンをクリックした後「申し訳ございません、セキュリティ上の理由から、httpsアクセスのみ許可されています。 」という表示が出て、そこから先に進めません。

>  if isset($_SERVER['HTTPS'])) {

この条件分岐を書いてみたところ、先には進めますが、httpsではなくてhttpでのアクセスになってしまいます。
Moodle2.2では新しい設定が必要になったのでしょうか? どなたかご存知の方いらしゃいましたら教えてください。
雄一 川口 への返信

Re: SSL設定について

- Hiroyuki H の投稿

> moodle2.2の場合、この設定だとログインボタンをクリックした後

サイト管理 / セキュリティ / HTTPセキュリティ の 「ログインにHTTPSを使用する」 を有効にすればよいような気がいたします。
(但し、この設定は不用意に変更すると、ログインできなくなる可能性がありますので事前によくご確認ください)

Hiroyuki H への返信

Re: SSL設定について

- 雄一 川口 の投稿
ご助言り難うございます。

他の記事を読むと、そこを有効にすると、ログインのときしかHTTPSが有効にならないように思い込んでいました。
httpやhttpsでソーソコード中に決め打ちで書かれている部分もあるらしく、ちょっとどうしようかなぁという気分です。
仰言るとおり、「ログインにHTTPSを使用する」でも試してみます。ただし、

>  但し、この設定は不用意に変更すると、ログインできなくなる可能性がありますので事前によくご確認ください)

これの対処法を良く確認してからにします。
評点平均: お役立ち度: ★★★★★★★ (1)
雄一 川口 への返信

Re: SSL設定について

- Tatsuya Shirai の投稿

>>  但し、この設定は不用意に変更すると、ログインできなくなる可能性がありますので事前によくご確認ください)
>これの対処法を良く確認してからにします。

この情報は私もとても興味があります.二の足を踏んでいる理由の一つです.

Tatsuya Shirai への返信

Re: SSL設定について

- 雄一 川口 の投稿
ご存じかも知れませんが、こんなウェブページがありました。

(URL) http://www.installationwiki.org/Moodle#loginhttps

Moodleのバージョン番号が見つからなかったのですが、まぁ何とか
なるでしょうと思い、 loginhttps = YES にしてみました。config.phpでは

$CFG->wwwroot = 'http://...'

のままです。結果は、ログインのとき「だけ」httpsでアクセスされ、ログイン後は
httpアクセスに戻りました。あまり面白くないです。

ソースで「申し訳ありません、…」が出る条件を確認しなきゃならない
ような気がします。しかし、ちょっと時間を取れそうにありません。
困りました。
評点平均: お役立ち度: ★★★★★★★ (1)