概要
注:このページは04/11/2013の時点で更新されています - MoodleはGeoTrust認証局に移行しました
管理者として利用可能な更新を確認する場合や更新をインストールする場合、Moodleサイトはmoodle.orgと通信する必要があります。この通信は、安全なHTTPSプロトコルを介して行われます。Moodleサイトはmoodle.org(Moodleプラグインディレクトリなど)のSSL証明書を検証し、その身元を確認します。この検証に合格するには、moodle.orgの証明書を発行した認証局(CA)の証明書(PEM形式)が、サーバにインストールされている必要があります。
moodle.orgのSSL証明書は、GeoTrust認証局によって発行されています。
問題
このCA証明書がない場合、リモートサイト(moodle.org)を検証できないため、Moodleサイトはデータの取得を拒否します(いわゆる中間者攻撃から保護するためです)。サーバ上の証明書の正確な場所は、OSの種類やその他の設定によって異なります。たとえば、Linuxサーバでは通常/usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority.crtにあります。
CA証明書がないと、利用可能な更新を確認したり、更新をインストールしようとしたりする際にエラーが発生します。
解決策
オペレーティングシステムを更新する(推奨)
この問題を解決する推奨方法は、一般的な認証局の最新のSSL証明書が含まれるように、サーバのオペレーティングシステムを更新することです。ただし、Windowsサーバではこの方法は役に立たないようです。Windowsでは、PHPにバンドルされているcURLライブラリはOSにインストールされたCA証明書を使用しないため、以下で説明する代替の解決策を使用する必要があります。
DebianおよびRedHatベースのディストリビューションでは、CA証明書はca-certificatesパッケージで配布されています。Gentooサーバでは、app-misc/ca-certificates ebuildで提供されます。また、サーバ上のOpenSSLライブラリ(libssl)およびcURLライブラリ(libcurl)を最新の状態にしておくこともお勧めします。
CA証明書を手動で提供する
オペレーティングシステムを更新できない場合、サーバの管理者がサーバ上のCA証明書の更新を拒否している場合(更新しない正当な理由がないにもかかわらず)、またはOSにインストールされたCAを更新しても解決しなかった場合(Windowsサーバの場合など)、考えられる回避策は、cURLサイトから必要な証明書のバンドルをダウンロードすることです。そこからcacert.pemファイルをダウンロードし、moodledata/moodleorgca.crtファイルとして配置する必要があります(つまり、cacert.pemファイルをダウンロードし、名前をmoodleorgca.crtに変更して、moodledataにアップロードします)。このファイルがmoodledataにある場合、Moodleはオペレーティングシステムが提供する証明書に頼る代わりに、このファイルを使用します。
上記のようにサーバのオペレーティングシステムにCA証明書を用意することが、本当に推奨される解決策であることを強調しておきます。moodleorgca.crtに基づく解決策は、一時的な対処としてのみ検討してください(ただし、Windowsサーバで動作させるにはこれが唯一の方法のようです)。
あるいは、直接のルート証明書をこちらで入手し、ダウンロードしてシステムにインストールすることもできます。 GeoTrust Primary CA
追記(CentOS 6)2016年2月12日 CentOS 6では、curl.haxx.seの回避策はTurnitin(turnitintwo)とうまく連携しません。 元に戻すには:
- yum reinstall openssl ca-certificates
update-ca-trustコマンドを使用して、CAストアを更新します。
- update-ca-trust