搜尋

首頁  >  問答  >  主體

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 天前581

全部回覆(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
  • 取消回覆