搜索

首页  >  问答  >  正文

laravel 5.2访问一个路由时遇到了“No system CA bundle”的问题

No system CA bundle could be found in any of the the common system locations.
PHP versions earlier than 5.6 are not properly configured to use the system's
CA bundle by default. In order to verify peer certificates, you will need to
supply the path on disk to a certificate bundle to the 'verify' request
option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
need a specific certificate bundle, then Mozilla provides a commonly used CA
bundle which can be downloaded here (provided by the maintainer of cURL):
https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once
you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
ini setting to point to the path to the file, allowing you to omit the 'verify'
request option. See http://curl.haxx.se/docs/sslcerts.html for more
information.

求教,这个问题没遇到过,是说我ssl证书出了什么问题吗?

世界只因有你世界只因有你2773 天前580

全部回复(1)我来回复

  • PHPz

    PHPz2017-05-16 16:54:31

    是不存在guzzle这个库能识别到的ssl证书吧...

    我找了一下文档发现 http://docs.guzzlephp.org/en/latest/request-options.html#verify-option

    When using the PHP stream wrapper on versions < 5.6, Guzzle tries to find your CA bundle in the following order:

    1. Check if openssl.cafile is set in your php.ini file.

    2. Check if curl.cainfo is set in your php.ini file.

    3. Check if /etc/pki/tls/certs/ca-bundle.crt exists (Red Hat, CentOS, Fedora; provided by the ca-certificates package)

    4. Check if /etc/ssl/certs/ca-certificates.crt exists (Ubuntu, Debian; provided by the ca-certificates package)

    5. Check if /usr/local/share/certs/ca-root-nss.crt exists (FreeBSD; provided by the ca_root_nss package)

    6. Check if /usr/local/etc/openssl/cert.pem (OS X; provided by homebrew)

    7. Check if C:windowssystem32curl-ca-bundle.crt exists (Windows)

    8. Check if C:windowscurl-ca-bundle.crt exists (Windows)

    你按照上面设置好了...

    回复
    0
  • 取消回复