8.6.5-1でOpenSSL Error

TOP Forums インストール(Installing KUSANAGI) 8.6.5-1でOpenSSL Error

8.6.5-1でOpenSSL Error

Tagged: ,

Viewing 15 reply threads
  • Author
    Posts
    • #874
      collne
      Participant

      いつもお世話になっています。

      今回、AWS の kusanagi を 8.6.5-1 にアップデートしたところ下記のエラーが出るようになりました。

      fgets(): SSL operation failed with code 1. OpenSSL Error messages: error:0A000126:SSL routines::unexpected eof while reading

      libssh などになにか問題がないでしょうか。
      ご確認いただけたらと思います。

    • #875
      Keita
      Participant

      collen さん、こんにちは。

      アップデート後に

      再起動 または kusanagi restart
      を試していただきましたでしょうか?

      kusanagi restrart

      KUSANAGIコマンド

      該当エラーはどこで表示されていますでしょうか?
      ・画面に表示されていますか?その場合はどの画面でしょうか?
      ・ログにも出力されていないでしょうか?Web サーバーのログも前後含めて記載いただけますでしょうか?

      以下のログとバージョンを記載いただけますでしょうか?
      ・yum update のログ
      ・OpenSSL のバージョン

    • #881
      collne
      Participant

      お返事が遅くなる申し訳ございません。

      kusanagi restart しております。
      インスタンスの再起動は致しておりません。

      下記のコードの fgets() でエラーが出ているようです。

      $fp = stream_socket_client( *******
      while( !feof( $fp ) ) {
      $response_data .= fgets( $fp, 4096 );
      }

      サーバーのエラーログはこんな感じです。
      2022/04/05 12:40:35 [error] 9793#0: *2062 FastCGI sent in stderr: "PHP message: PHP Warning: fgets(): SSL operation failed with code 1. OpenSSL Error messages:
      error:0A000126:SSL routines::unexpected eof while reading

      OpenSSLのバージョンは以下の通りです。
      [centos@kusanagi80 ~]$ openssl version
      OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

      以下、yum.log です。
      Mar 28 03:28:53 Installed: kusanagi-wp-plugins-20220316-1.el7.noarch
      Mar 28 03:28:57 Updated: kusanagi-8.6.5-1.noarch
      Mar 28 03:32:14 Updated: 1:grub2-common-2.02-0.87.el7.centos.7.noarch
      Mar 28 03:32:14 Updated: epel-release-7-14.noarch
      Mar 28 03:32:14 Updated: 32:bind-license-9.11.4-26.P2.el7_9.9.noarch
      Mar 28 03:32:14 Updated: 1:grub2-pc-modules-2.02-0.87.el7.centos.7.noarch
      Mar 28 03:32:14 Updated: libX11-common-1.6.7-4.el7_9.noarch
      Mar 28 03:32:15 Updated: kbd-misc-1.15.5-16.el7_9.noarch
      Mar 28 03:32:15 Installed: xz-devel-5.2.2-1.el7.x86_64
      Mar 28 03:32:16 Updated: kernel-headers-3.10.0-1160.59.1.el7.x86_64
      Mar 28 03:32:16 Updated: kbd-legacy-1.15.5-16.el7_9.noarch
      Mar 28 03:32:16 Installed: libedit-devel-3.0-12.20121213cvs.el7.x86_64
      Mar 28 03:32:16 Updated: tzdata-2022a-1.el7.noarch
      Mar 28 03:32:17 Updated: bash-4.2.46-35.el7_9.x86_64
      Mar 28 03:32:17 Updated: nss-softokn-freebl-3.67.0-3.el7_9.x86_64
      Mar 28 03:32:21 Updated: glibc-common-2.17-325.el7_9.x86_64
      Mar 28 03:32:22 Updated: glibc-2.17-325.el7_9.x86_64
      Mar 28 03:32:22 Updated: nspr-4.32.0-1.el7_9.x86_64
      Mar 28 03:32:22 Updated: nss-util-3.67.0-1.el7_9.x86_64
      Mar 28 03:32:22 Updated: libxml2-2.9.1-6.el7_9.6.x86_64
      Mar 28 03:32:22 Updated: systemd-libs-219-78.el7_9.5.x86_64
      Mar 28 03:32:24 Updated: systemd-219-78.el7_9.5.x86_64
      Mar 28 03:32:24 Updated: libX11-1.6.7-4.el7_9.x86_64
      Mar 28 03:32:27 Updated: kusanagi-openssl-3.0.2-1.noarch
      Mar 28 03:32:27 Updated: gd-last-2.3.3-2.el7.remi.x86_64
      Mar 28 03:32:27 Updated: 1:grub2-tools-minimal-2.02-0.87.el7.centos.7.x86_64
      Mar 28 03:32:27 Updated: systemd-sysv-219-78.el7_9.5.x86_64
      Mar 28 03:32:28 Updated: nss-softokn-3.67.0-3.el7_9.x86_64
      Mar 28 03:32:28 Updated: nss-sysinit-3.67.0-4.el7_9.x86_64
      Mar 28 03:32:28 Updated: nss-3.67.0-4.el7_9.x86_64
      Mar 28 03:32:28 Updated: rpm-libs-4.11.3-48.el7_9.x86_64
      Mar 28 03:32:28 Updated: rpm-4.11.3-48.el7_9.x86_64
      Mar 28 03:32:28 Updated: 1:grub2-tools-2.02-0.87.el7.centos.7.x86_64
      Mar 28 03:32:29 Updated: ca-certificates-2021.2.50-72.el7_9.noarch
      Mar 28 03:32:29 Updated: 1:openssl-libs-1.0.2k-24.el7_9.x86_64
      Mar 28 03:32:30 Updated: krb5-libs-1.15.1-51.el7_9.x86_64
      Mar 28 03:32:30 Updated: cyrus-sasl-lib-2.1.26-24.el7_9.x86_64
      Mar 28 03:32:30 Updated: 32:bind-libs-lite-9.11.4-26.P2.el7_9.9.x86_64
      Mar 28 03:32:30 Updated: 32:bind-libs-9.11.4-26.P2.el7_9.9.x86_64
      Mar 28 03:32:30 Updated: 1:openssl-1.0.2k-24.el7_9.x86_64
      Mar 28 03:32:30 Updated: libkadm5-1.15.1-51.el7_9.x86_64
      Mar 28 03:32:30 Updated: krb5-devel-1.15.1-51.el7_9.x86_64
      Mar 28 03:32:31 Updated: 1:openssl-devel-1.0.2k-24.el7_9.x86_64
      Mar 28 03:32:31 Updated: 1:grub2-tools-extra-2.02-0.87.el7.centos.7.x86_64
      Mar 28 03:32:31 Updated: 1:grub2-pc-2.02-0.87.el7.centos.7.x86_64
      Mar 28 03:32:31 Updated: rpm-build-libs-4.11.3-48.el7_9.x86_64
      Mar 28 03:32:31 Updated: nss-tools-3.67.0-4.el7_9.x86_64
      Mar 28 03:32:32 Updated: openldap-2.4.44-25.el7_9.x86_64
      Mar 28 03:32:32 Updated: openssh-7.4p1-22.el7_9.x86_64
      Mar 28 03:32:32 Updated: cyrus-sasl-2.1.26-24.el7_9.x86_64
      Mar 28 03:32:32 Updated: cyrus-sasl-devel-2.1.26-24.el7_9.x86_64
      Mar 28 03:32:32 Updated: kusanagi-nghttp2-1.47.0-1.noarch
      Mar 28 03:32:34 Updated: kusanagi-httpd-2.4.53-1.noarch
      Mar 28 03:32:34 Updated: 1:mod_ssl-2.4.6-97.el7.centos.5.x86_64
      Mar 28 03:32:34 Updated: ImageMagick-6.9.10.68-6.el7_9.x86_64
      Mar 28 03:32:34 Updated: cronie-anacron-1.4.11-24.el7_9.x86_64
      Mar 28 03:32:34 Updated: cronie-1.4.11-24.el7_9.x86_64
      Mar 28 03:32:35 Installed: libxml2-devel-2.9.1-6.el7_9.6.x86_64
      Mar 28 03:32:35 Installed: libzstd-1.5.2-1.el7.x86_64
      Mar 28 03:32:35 Updated: libzip5-1.8.0-2.el7.remi.x86_64
      Mar 28 03:32:35 Updated: glibc-headers-2.17-325.el7_9.x86_64
      Mar 28 03:32:35 Updated: kernel-tools-libs-3.10.0-1160.59.1.el7.x86_64
      Mar 28 03:32:37 Installed: libicu69-69.1-2.el7.remi.x86_64
      Mar 28 03:32:40 Updated: kusanagi-php7-7.4.28-1.noarch
      Mar 28 03:32:40 Updated: php-pecl-zip-1.20.0-1.el7.remi.5.6.x86_64
      Mar 28 03:32:40 Updated: php-common-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:41 Updated: php-cli-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:41 Updated: php-pdo-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:41 Updated: php-xml-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:41 Updated: python2-distro-1.5.0-1.el7.noarch
      Mar 28 03:32:42 Updated: python2-certbot-1.11.0-2.el7.noarch
      Mar 28 03:32:44 Updated: certbot-1.11.0-2.el7.noarch
      Mar 28 03:32:44 Updated: php-xmlrpc-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:44 Updated: php-mysqlnd-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-devel-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-gd-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-process-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-mbstring-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-mcrypt-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:45 Updated: php-opcache-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:46 Updated: php-fpm-5.6.40-32.el7.remi.x86_64
      Mar 28 03:32:46 Updated: kusanagi-wp-cli-2.6.0-1.el7.noarch
      Mar 28 03:32:47 Updated: kernel-tools-3.10.0-1160.59.1.el7.x86_64
      Mar 28 03:32:47 Updated: glibc-devel-2.17-325.el7_9.x86_64
      Mar 28 03:32:48 Updated: openldap-devel-2.4.44-25.el7_9.x86_64
      Mar 28 03:32:48 Updated: openssh-clients-7.4p1-22.el7_9.x86_64
      Mar 28 03:32:48 Updated: openssh-server-7.4p1-22.el7_9.x86_64
      Mar 28 03:32:48 Updated: sudo-1.8.23-10.el7_9.2.x86_64
      Mar 28 03:32:48 Updated: rpm-python-4.11.3-48.el7_9.x86_64
      Mar 28 03:32:48 Updated: 1:grub2-2.02-0.87.el7.centos.7.x86_64
      Mar 28 03:32:48 Updated: 32:bind-utils-9.11.4-26.P2.el7_9.9.x86_64
      Mar 28 03:32:48 Updated: 32:bind-export-libs-9.11.4-26.P2.el7_9.9.x86_64
      Mar 28 03:32:49 Updated: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64
      Mar 28 03:32:49 Updated: monit-5.30.0-1.el7.x86_64
      Mar 28 03:32:49 Updated: python-virtualenv-15.1.0-5.el7_9.noarch
      Mar 28 03:32:50 Updated: kusanagi-nginx-1.21.6-1.noarch
      Mar 28 03:32:51 Updated: kusanagi-ImageMagick-6.7.8.9-19.el7.x86_64
      Mar 28 03:32:52 Updated: cloud-init-19.4-7.el7.centos.6.x86_64
      Mar 28 03:32:52 Updated: polkit-0.112-26.el7_9.1.x86_64
      Mar 28 03:32:52 Updated: libgudev1-219-78.el7_9.5.x86_64
      Mar 28 03:32:52 Updated: libxml2-python-2.9.1-6.el7_9.6.x86_64
      Mar 28 03:32:52 Updated: kbd-1.15.5-16.el7_9.x86_64
      Mar 28 03:32:52 Updated: kpartx-0.4.9-135.el7_9.x86_64
      Mar 28 03:32:53 Updated: binutils-2.27-44.base.el7_9.1.x86_64
      Mar 28 03:32:53 Updated: unzip-6.0-24.el7_9.x86_64
      Mar 28 03:32:54 Updated: python-perf-3.10.0-1160.59.1.el7.x86_64
      Mar 28 03:32:54 Updated: python-pillow-2.0.0-23.gitd1c6db8.el7_9.x86_64
      Mar 28 03:32:55 Updated: virt-what-1.18-4.el7_9.1.x86_64
      Mar 28 03:33:05 Installed: kernel-3.10.0-1160.59.1.el7.x86_64
      Mar 28 03:33:06 Updated: groonga-release-2021.10.30-1.noarch
      Mar 28 03:33:06 Updated: remi-release-7.9-3.el7.remi.noarch
      Mar 28 03:33:06 Updated: python2-rsa-3.4.2-3.el7.noarch
      Mar 28 03:33:07 Updated: glibc-2.17-325.el7_9.i686
      Mar 28 03:33:07 Updated: nss-softokn-freebl-3.67.0-3.el7_9.i686
      Mar 28 03:33:07 Updated: systemd-libs-219-78.el7_9.5.i686

    • #883
      Keita
      Participant

      collen さん こんにちは。

      エラーログの内容など、ありがとうございます。

      kusanagi restart だけでは不十分な可能性もあるので、
      インスタンスの再起動も試していただけますでしょうか?

    • #889
      collne
      Participant

      こんにちは。

      インスタンスの停止、再起動を行ってみましたが状況は変わりませんでした。

    • #890
      collne
      Participant

      OpenSSLのバージョンですが、先日

      OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

      とお伝えしましたが、rpm -q openssl で見てみると

      openssl-1.0.2k-24.el7_9.x86_64

      となっていました。
      これは正常でしょうか。

    • #891
      Keita
      Participant

      こんにちは。

      kusanagi-openssl と openssl の バージョンが異なるため、正常です。

      
      [root@kusanagi83 ~]# rpm -qa | grep openssl
      openssl-1.0.2k-25.el7_9.x86_64
      openssl-devel-1.0.2k-25.el7_9.x86_64
      openssl-libs-1.0.2k-25.el7_9.x86_64
      kusanagi-openssl-3.0.2-1.noarch
      

      前回示していただいた下記のコードは独自の PHP 実装でしょうか?

      
      $fp = stream_socket_client( *******
      while( !feof( $fp ) ) {
      $response_data .= fgets( $fp, 4096 );
      }
      
    • #893
      cloudy
      Participant

      collne さん、こんにちは。

      頂いた情報だけでは再現性がないので、追加で情報いただけますと助かります。

      1. kusanagi status の結果
      トップページにも書いてあるとおり、情報が多ければ多いほど確認しやすいです。

      2. プロトコルが不明です。
      $fp = stream_socket_client( ******* で伏せ文字の情報ももう少し開示してください。

      3. 再現できるソースコード
      ソースはすべて提示できないと思いますので、公開できる範囲で再現性のあるソースをご提示ください。

    • #924
      collne
      Participant

      ありがとうございます。

      一度、新規で立ち上げたインスタンスでどうなるのかを確認してみようと思います。

    • #1002
      collne
      Participant

      非常に時間が経ってしまって申し訳ございません。
      あれからいろいろ情報を収集しまして、なんとなく状況が見えてきたので共有したいと思います。

      まず下記のエラーが出る原因は、レスポンスサーバー(サービス元)が適切にclose_notifyを返していないために起こるものだという事がわかりました。
      fgets(): SSL operation failed with code 1

      サービス元に情報を共有しようと思ったのですが、弊社が取引している複数の会社で同様の症状が出たので、レスポンスサーバーの改善を求める前にこちらでなんとかできないかを調べてみました。

      このエラーが起こる環境はOpenSSLが3.xの時に発生します。
      kusanagiでは、PHP7.4.26あたりからOpenSSLが1から3に変わっているようです。
      そこで、下記のようにダウングレードを試みましたが依存関係によりダウンできませんでした。
      yum downgrade kusanagi-php7-7.4.25-1

      close_notifyの問題に関しては、このエラーを無視するためのコンテキスト(SSL_OP_IGNORE_UNEXPECTED_EOF)が用意されるようですが、これが利用できるのはPHP8.1.7からとなっています。

      PHPのドキュメントでは、「PHP >= 8.1 のみが、OpenSSL >= 3.0 をサポートしています。」とあります。
      https://www.php.net/manual/ja/openssl.requirements.php

      現状のkusanagi(PHP7.4、8.0)でOpenSSL1を使うことはできないものでしょうか。

    • #1003
      cloudy
      Participant

      collne さん、こんにちは。

      前回私も書いたことですが、トップページにも記載の通り kusanagi status の結果はいただけませんか?
      質問を見る限り必要だと判断して、改めて結果の提出をお願いしています。
      結果が出せない理由がございましたら、その旨のご回答をいただきたいです。
      また、他にも私が確認した内容に対して特に回答がないようです。
      情報がなければ回答ができないケースもありますのでご了承ください。

    • #1004
      collne
      Participant

      失礼いたしました。以下、statusです

      [root@kusanagi80 ~]# kusanagi status
      Profile: test.collne.com
      FQDN: test.collne.com
      Type: WordPress
      KUSANAGI Version 8.7.5-2
      aws

      *** (active) nginx ***
      ● nginx.service - The NGINX HTTP and reverse proxy server
      Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset : disabled)
      Active: active (running) since 木 2022-08-11 17:02:05 JST; 17h ago

      *** (active) php8-fpm ***
      ● php8-fpm.service - The PHP FastCGI Process Manager
      Loaded: loaded (/usr/lib/systemd/system/php8-fpm.service; enabled; vendor pre set: disabled)
      Active: active (running) since 木 2022-08-11 17:02:05 JST; 17h ago

      *** (active) MariaDB ***
      ● mariadb.service - MariaDB 10.1.48 database server
      Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor pres et: disabled)
      Active: active (running) since 木 2022-08-11 17:07:19 JST; 17h ago

      *** ruby ***
      KUSANAGI Ruby is not installed yet

      *** add-on ***

      *** Cache Status ***
      bcache off
      fcache off

      *** WAF ***
      off

      *** SELinux ***
      off (permanent)

      完了しました。

    • #1005
      cloudy
      Participant

      collne さん、こんにちは。

      情報ありがとうございます。
      KUSANAGI Version 8.7.5-2 ですね。

      結論からお答えします。
      かんたんにロールバックする方法はなく、ロールバックはセキュリティ上でもおすすめいたしません。
      今回、KUSANAGI 8 で使用される PHP 7.4 系にエラーが出ないよう先行対応をしていただきました。

      下記リリース文を参考に、バージョンアップ後にエラーが発生しないかご確認ください。
      お願いになるのですが、バージョンアップ後に問題が発生しないことを確認したいので、実行前後のログをいただけると助かります。

      KUSANAGIモジュール更新情報

      --

      今回の件はご承知の通り、OpenSSL 1系と3系の通信時に互換性に起因するものです。
      1系があいまいな実装や設定を受け入れていたものを 3系で厳格にした差により発生するものになります。
      公式の PHP 8.1.7 以降で特別に OpenSSL 1系の動作を実行できるように変更したため、エラーが発生しなくなっております。
      ただし、PHP 7.4.x / 8.0.x にはこの改修が含まれていないため SSL 通信時にエラーが発生していました。

      今回の本来の正しい解決方法は、サーバー側の OpenSSL を正しい設定に変更しエラーを無くすことです。
      ただ現実問題として正しい解決方法を適用することが難しいところもあるかと思います。

      --

      以下、私が確認に使用した実行結果ログです。

      `
      [root@kusanagi83 ~]# kusanagi -V
      KUSANAGI Version 8.7.5-2
      Done.
      [root@kusanagi83 ~]# rpm -q kusanagi-php7
      kusanagi-php7-7.4.30-3.noarch
      [root@kusanagi83 ~]# php7 -r "echo file_get_contents('https://chromedriver.storage.googleapis.com/LATEST_RELEASE', false, stream_context_create()), PHP_EOL;"
      104.0.5112.79
      `

      なお、バージョンアップ前やバージョンアップに失敗している場合はは下記のエラーが含まれた結果が返ります。

      `
      [root@kusanagi83 ~]# php7 -r "echo file_get_contents('https://chromedriver.storage.googleapis.com/LATEST_RELEASE', false, stream_context_create()), PHP_EOL;"
      PHP Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
      error:0A000126:SSL routines::unexpected eof while reading in Command line code on line 1
      PHP Warning: file_get_contents(): SSL: Success in Command line code on line 1
      104.0.5112.79
      `

    • #1006
      cloudy
      Participant

      collne さん、追記です。

      kusanagi status の実行結果を確認したところ、 MariaDB 10.1 系をご利用のようです。

      *** (active) MariaDB ***
      ● mariadb.service - MariaDB 10.1.48 database server
      Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor pres et: disabled)
      Active: active (running) since 木 2022-08-11 17:07:19 JST; 17h ago

      こちらパッケージから削除されているので、 yum update 時に失敗するかもしれません。
      失敗した場合、 yum update--disablerepo=mariadb を追加で指定することを試してみてください。

      詳しくは、下記のトピックを参考にしてください。

      MariaDBのアップデートができない(10.1→10.5)

    • #1009
      collne
      Participant

      cloudy さん、ありがとうございました。
      アップデートでPHP7.4、PHP8.0いずれもエラーは出なくなりました。
      とても助かりました。今後とこもよろしくお願いいたします。

      以下、kusanagi status です。

      Type: WordPress
      KUSANAGI Version 8.7.5-2
      aws

      *** (active) nginx ***
      ● nginx.service - The NGINX HTTP and reverse proxy server
      Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
      Active: active (running) since 水 2022-08-17 23:05:11 JST; 4min 33s ago

      *** (active) php8-fpm ***
      ● php8-fpm.service - The PHP FastCGI Process Manager
      Loaded: loaded (/usr/lib/systemd/system/php8-fpm.service; enabled; vendor preset: disabled)
      Active: active (running) since 水 2022-08-17 23:09:10 JST; 34s ago

      *** (active) MariaDB ***
      ● mariadb.service - MariaDB 10.5.17 database server
      Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
      Active: active (running) since 水 2022-08-17 23:09:03 JST; 41s ago

      *** ruby ***
      KUSANAGI Ruby is not installed yet

      *** add-on ***

      *** Cache Status ***
      bcache off
      fcache off

      *** WAF ***
      off

      *** SELinux ***
      off (permanent)

      完了しました。

    • #1010
      cloudy
      Participant

      collne さん、こんにちは。

      いただきたかったログは、実際にエラーが発生していたコード部分のエラーログが、改修適用前後でどう変わったかだったのですが…
      客観的なエビデンスはいただけませんでしたので確認はできませんでしたが、解決したということで承知しました。

      ---

      私の場合、作業前と作業後のログを取得して、該当エラー部分に問題がなくなったことを客観的な事実として提示しつつ、結論として問題がなくなったと説明するようにしております。
      (厳密には該当以外の部分にも影響がない点も確認する必要もありますが、話の主旨がずれますので割愛します。)
      この提示方法のメリットは、検証方法や結論の導き方にに間違っている場合や不足がある場合、有識者に指摘いただけることがあるためです。
      また、解決策を提示してくれた方自身が、客観的な事実から想定していた動作を確認することもできるためです。

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

Next article

フォーラムについて