Ошибка HTTP AWS: Ошибка при создании ресурса: [сообщение] fopen(): Сбой операции SSL с кодом 5

#php #amazon-s3

Вопрос:

Я использую AWS S3 PHP SDK.Я читаю данные из файлов, хранящихся на S3, с помощью PHP. Но через некоторое время в процессе я получаю следующие ошибки

 AWS HTTP error: Error creating resource: [message] fopen(): SSL operation failed with code 5. OpenSSL Error messages:  error:02001018:system library:fopen:Too many open files  error:20074002:BIO routines:FILE_CTRL:system lib  error:0B06F002:x509 certificate routines:X509_load_cert_file:system lib  error:02001018:system library:fopen:Too many open files  error:20074002:BIO routines:FILE_CTRL:system lib  error:0B06F002:x509 certificate routines:X509_load_cert_file:system lib  error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed   Severity: Compile Error --gt; require(): Failed opening required '/var/www/project/aws/GuzzleHttp/Exception/ConnectException.php' (include_path='.:/usr/share/php') /var/www/project/aws/aws-autoloader.php 516  

ниже приведен код в aws-autoloader.php это приводит к ошибке

 spl_autoload_register(function ($class) use ($mapping) {  if (isset($mapping[$class])) {  require $mapping[$class];  }  }, true);  

Комментарии:

1. Не могли бы вы, пожалуйста, показать свой код для чтения файла?

Ответ №1:

Если ваш php-код получает доступ к файлам s3 по протоколу HTTPS или SFTP и не имеет возможности проверить действительность SSL-сертификата, вы обычно будете вести себя так.

Чтобы исправить это , вы должны указать в своем php.ini путь к файлу .pem необходимого сертификата. Вот строка для изменения :

 ;openssl.cafile = "C:  mycertification.pem"  

Если вы используете сертификацию acm, вы можете экспортировать ее непосредственно из консоли AWS. Вы также можете использовать РОЛЬ IAM для предоставления прямого доступа к вашему php-серверу, чтобы получить его с помощью acm arn.

Я надеюсь, что это может вам помочь