OpenSSL错误消息:错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败

时间:2019-08-05 11:51:46

标签: php laravel openssl xampp composer-php

我正在Windows 10计算机和Composer 1.9.0版上使用PHP v7.2

composer create-project --prefer-dist laravel/laravel blog

我正在尝试安装Laravel并使用composer启动项目,但出现以下错误

  

OpenSSL错误消息:   错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败

当我运行composer diagnose时,结果低于预期

  

PS C:\ xampp \ htdocs \ webstore_services>作曲家诊断   检查平台设置:确定   检查git设置:确定   正在检查与Packagist的HTTP连接:警告:通过HTTP访问192.168.1xx.2xx是不安全的协议。   好   正在检查与Packagist的https连接:[Composer \ Downloader \ TransportException]无法下载“ https://repo.packagist.org/packages.json”文件:SSL操作失败,代码为1。OpenSSL错误消息:   错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败   无法启用加密   无法打开流:操作失败   检查github.com速率限制:失败   [Composer \ Downloader \ TransportException]无法下载“ https://api.github.com/rate_limit”文件:SSL操作失败,代码为1。OpenSSL错误消息:   错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败   无法启用加密   无法打开流:操作失败   检查磁盘可用空间:确定   检查公钥:   标签公钥指纹:57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642   开发人员公开密钥指纹:4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952   好   检查作曲家的版本:     [Composer \ Downloader \ TransportException]
    无法下载“ https://getcomposer.org/versions”文件:SSL操作失败,代码为1。OpenSSL错误消息:
    错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败
    无法启用加密
    打开流失败:操作失败
  诊断

我已经尝试了Internet上几乎所有的解决方案

php -r "print_r(openssl_get_cert_locations());"

结果

(
    [default_cert_file] => C:\usr\local\ssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => C:\usr\local\ssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => C:\usr\local\ssl/private
    [default_default_cert_area] => C:\usr\local\ssl
    [ini_cafile] => C:\xampp\php\cacert.pem
    [ini_capath] => C:\xampp\php\cacert.pem
)

我将如何在其中更改default_cert_file的位置,仅保留此位置?

由于我使用的是公司代理服务器,因此我已设置了代理服务器的环境变量。

https_proxy:http://user:pass@host:port http_proxy:http://user:pass@host:port

做完所有事情后,它仍然无济于事。

2 个答案:

答案 0 :(得分:2)

我不知道我是否会回答您,但我会尽力启发您:

这是安全连接失败: 生成证书时定义了default_cert_file

错误:1416F086:SSL是类似的错误 服务器拒绝了您的证书,因为它被吊销,不存在或不正确 当安全证书无效或不再有效时,在具有错误代码:SSL_ERROR_REVOKED_CERT_ALERT或SSL_ERROR_HANDSHAKE_FAILURE_ALER的浏览器中可能发生相同错误

生成根证书时,这可能取决于配置文件,在该文件中指定了多种信息,尤其是路径:

[CA_default] dir = ./certificats#存放所有内容的地方

openssl等...

我认为您正在寻找的是类似的

SSL上下文选项 SSL上下文选项-SSL上下文选项列表

cafile字符串

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

capath字符串

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

答案 1 :(得分:0)

此错误的最常见原因是日期/时间不同步,请检查计算机的本地时间是什么,并使用ntp或chrony等命令来同步您的时间。

如果您在Docker容器中遇到此问题,则该容器将使用您的主机时间。但是,将计算机置于休眠模式会浪费时间。唯一的解决方案是重新启动整个计算机。