- ОС: Ubuntu 16.04
- PHP: 7.2
- CURL: curl 7.47.0 (x86_64-pc-linux-gnu) libcurl / 7.47.0 GnuTLS / 3.4.10zlib / 1.2.8 libidn / 1.32 librtmp / 2.3
- Guzzle: 6.3
Мой проект в настоящее время использует некоторые пакеты, которые зависят от Guzzle, например: AWS, Mailgun ... Однако, он часто выкидывал эту ошибку:
error: cURL error 77: error setting certificate verify locations:
CAfile: /etc/ssl/certs
CApath: /etc/ssl/certs (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Ниже приведена часть моего php.ini
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo='/etc/ssl/certs/ca-certificates.crt'
[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
openssl.cafile='/etc/ssl/certs/ca-certificates.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
; certificate. This value must be a correctly hashed certificate directory.
; Most users should not specify a value for this directive as PHP will
; attempt to use the OS-managed cert stores in its absence. If specified,
; this value may still be overridden on a per-stream basis via the "capath"
; SSL stream context option.
openssl.capath='/etc/ssl/certs/'
Ничего из этой работы, даже если поиск через ini_get () это нормально и полностьюраспознан.На данный момент я должен сделать обходной путь, изменив vendor / guzzlehttp / guzzle / src / Client.php и изменив конфигурацию по умолчанию на 'verify' => '/ etc / ssl / certs / ca-certificates.crt ' тогда все в порядке (что я считаю не лучшим вариантом)
получение с помощью init_get ()
array(8) {
["default_cert_file"]=> string(21) "/usr/lib/ssl/cert.pem"
["default_cert_file_env"]=> string(13) "SSL_CERT_FILE"
["default_cert_dir"]=> string(18) "/usr/lib/ssl/certs"
["default_cert_dir_env"]=> string(12) "SSL_CERT_DIR"
["default_private_dir"]=> string(20) "/usr/lib/ssl/private"
["default_default_cert_area"]=> string(12) "/usr/lib/ssl"
["ini_cafile"]=> string(34) "/etc/ssl/certs/ca-certificates.crt"
["ini_capath"]=> string(15) "/etc/ssl/certs/"
}
openssl.cafile: /etc/ssl/certs/ca-certificates.crt
curl.cainfo: /etc/ssl/certs/ca-certificates.crt
Примечание : я пытался настроить ~ / .curlrc вместе с export CURL_CA_BUNDLE = / etc / ssl / certs / ca-сертификаты.crt но ничего из этого не работаетУ кого-нибудь есть какое-либо решение или какой-либо ключ, чтобы решить эту проблему?