kusanagi-php7 7.2.5-1でcURLなどからの外部HTTPSサイトへの接続でエラー

TOP Forums バグ報告と提案(Requests and Feedback) kusanagi-php7 7.2.5-1でcURLなどからの外部HTTPSサイトへの接続でエラー

kusanagi-php7 7.2.5-1でcURLなどからの外部HTTPSサイトへの接続でエラー

Viewing 7 reply threads
  • Author
    Posts
    • #392
      yousan
      Participant

      こんにちは。

      NGINX + PHP-FPM(7.2.5-1)を利用していて、相手方の証明書にエラーはなさそうなのですが( https://twitter.comhttps://facebook.com など)、外部サイトへのHTTPS接続時にエラーが出ます。

      Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mnt/example.com/test.php on line 4
      Warning: file_get_contents(): Failed to enable crypto in /mnt/example.com/test.php on line 4
      Warning: file_get_contents(https://example.com/test.jpg): failed to open stream: operation failed in /mnt/example/test.php on line 4

      利用しているバージョンは下記です。
      kusanagi-php7.noarch 7.2.5-1 @kusanagi

      同じコードをkusanagi(PHP-FPM 7.0系)で動かすとエラーは出ません。

      下記のように相手方SSLの認証を入れないようにすると動きます。
      https://teratail.com/questions/83578

      またHHVM (Version 3.19.2-dev)にするとエラーはでません。
      今回の件について: https://qiita.com/yousan/items/4c98cbee20b2d89e91a3

      opensslのデフォルトコンフィグが変わってしまったことなどが原因かなと推測していますが…、調査や解決の方法などありそうでしょうか?

    • #399
      collne
      Participant

      こんにちは。
      私もnginx php7 で運用していますが同じ症状を確認しています。
      証明書もいくつか変えてみましたが変わりありませんでした。

    • #400
      yousan
      Participant

      @collne
      どうもです! ちょうど先ほど解決できました。
      今記事にまとめていますが下記のように証明書を指定すれば解決しそうです。

      sudo git diff /etc/php7.d/php.ini
      diff --git a/php7.d/php.ini b/php7.d/php.ini
      index f122a10..254264d 100644
      --- a/php7.d/php.ini
      +++ b/php7.d/php.ini
      @@ -1864,6 +1864,7 @@ ldap.max_links = -1
      ; be overridden on a per-stream basis via the "cafile" SSL stream context
      ; option.
      ;openssl.cafile=
      +openssl.cafile=/etc/ssl/certs/ca-bundle.crt
      ; If openssl.cafile is not specified or if the CA file is not found, the
      ; directory pointed to by openssl.capath is searched for a suitable
      
    • #401
      yousan
      Participant

      Qiitaにまとめました。
      証明書を指定すれば解決しました。

      https://qiita.com/yousan/items/dc2cc789dcb0f07a61dc

    • #402
      collne
      Participant

      うまく行きました!
      ありがとうございます。

      しかし、初期値ではどこの証明書を見に行ってるんでしょうね。
      PHP5.6の時は、ここは設定しなくても大丈夫だという事は、やはり初期のファイルパスがあるような気がします。

    • #403
      yousan
      Participant

      @collne

      うまくいけてよかったですー。

      そうなんです、過去のバージョンだと指定しなくても問題なかったですよね。
      PHPか、opensslモジュールのバージョンアップでデフォルトが変わったっぽいですよね。

    • #404
      優也田島
      Keymaster

      上記問題の件、下記のKUSANAGIのアップデートで対応致しました。

      KUSANAGIモジュール更新情報

    • #405
      collne
      Participant

      早速のアップデート、ありがとうございます。

Viewing 7 reply threads
  • You must be logged in to reply to this topic.

Next article

フォーラムについて