file_get_contentsでSSLのサイトから情報を取得できない場合の解決方法

PHP
広告

SSLへのfile_get_contents

今までfile_get_contentsでSSLのサイトから情報を取得していなかったので、全然気にしていませんでしたが、PHP5.6から、curl同様、証明書の妥当性確認がデフォルトでONになったようです。


そのため、PHP5.6でSSLのサイトからfile_get_contentsで取得する場合には、file_get_contentsのオプションで妥当性確認をしないように設定するか、php.iniに証明書のパスを記載することで解決できます。

どちらかというと、php.iniに設定してしまった方が楽だと思いますので、php.iniの該当場所へパスを記載しましょう。


php.iniの、openssl.cafileに証明書の場所を設定してあげます。
centos5の場合は、「/etc/pki/tls/certs/ca-bundle.crt」になります。
そして、apacheなりhttpdの再起動を行うことで反映できます。


これだけで、PHP5.6以降のfile_get_contentsでSSLサイトからでも情報取得ができるようになります。
file_get_contentsを使わずにcurlを使うことで代用することも可能です。


少しはまりましたので、記載しておきます。