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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/57358047/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 18:21:08  来源:igfitidea点击:

OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

phplaravelopensslxamppcomposer-php

提问by Ankit S.

I am using PHP v7.2, on Windows 10 Computer and Composer version 1.9.0

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

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

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

I am trying to install Laravel and start a project using composer but getting the following error

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

OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

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

When I run composer diagnosegetting below result

当我运行composer diagnose低于结果时

PS C:\xampp\htdocs\webstore_services> composer diagnose Checking platform settings: OK Checking git settings: OK Checking http connectivity to packagist: Warning: Accessing 192.168.1xx.2xx over http which is an insecure protocol. OK Checking https connectivity to packagist: [Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed Failed to enable crypto failed to open stream: operation failed Checking github.com rate limit: FAIL [Composer\Downloader\TransportException] The "https://api.github.com/rate_limit" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed Failed to enable crypto failed to open stream: operation failed Checking disk free space: OK Checking pubkeys: Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642 Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952 OK Checking composer version: [Composer\Downloader\TransportException]
The "https://getcomposer.org/versions" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
diagnose

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

I have tried almost every solution on the Internet

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

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

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

Result

结果

(
    [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
)

How will I change the location of default_cert_filein this, Only this is left?

我将如何更改default_cert_filein this的位置,只剩下 this 了?

Since I am on Corporate Proxy I have set the env-variable of the proxy.

由于我在公司代理上,我设置了代理的环境变量。

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

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

After everything I do, it doesn't help me though.

在我所做的一切之后,它对我没有帮助。

回答by ozome

I do not know if I will answer you, but I will try to enlighten you:

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

it is a secure connection failure: default_cert_file is defined when you generate the certificate

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

error:1416F086:SSL is an error like the server rejected your certificate because it is revoked, nonexistent or incorrectthe sameerror can occur in a browser with Error code: SSL_ERROR_REVOKED_CERT_ALERT or SSL_ERROR_HANDSHAKE_FAILURE_ALER when the security certificate is not or no longer valid

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

when you generate a root certificate this can depend on a configuration file in which is specified several information, notably the path:

当您生成根证书时,这可能取决于一个配置文件,其中指定了几个信息,特别是路径:

[CA_default] dir = ./certificats # Where everything is kept

[CA_default] dir = ./certificats # 保存所有东西的地方

openssl etc ...

openssl 等...

I think what you're looking for is akin

我认为你正在寻找的是相似的

SSL context options SSL context options — SSL context option listing

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

cafile string

咖啡馆字符串

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 string

大写字符串

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.