虽然尝试在Windows上设置php环境(使用wamp)来使用Amazon PHP SDK,但当我尝试运行示例测试时,我收到以下错误:
Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848
我已将以下行添加到我的php.ini
curl.cainfo = C:\Windows\ca-bundle.crt
这是我使用此VBS脚本创建的证书的位置 VBS-Script
我也重启了我的WAMP服务。
答案 0 :(得分:198)
使用此证书根证书包:
https://curl.haxx.se/ca/cacert.pem
在磁盘上复制此证书包。并在php.ini
curl.cainfo = "path_to_cert\cacert.pem"
答案 1 :(得分:24)
我通过修改php.ini
C:\wamp\bin\apache\apache2.4.9\bin\
文件来修复此问题
curl.cainfo = "C:/wamp/bin/php/php5.5.12/cacert.pem"
首先我尝试修改php.ini
处的C:\wamp\bin\php\php5.5.12\
文件并且它无效。
希望这可以帮助正在搜索权限php.ini
的人修改
答案 2 :(得分:13)
@Overflowh我也尝试了上面的答案,但没有运气。我将php版本从5.3.24更改为5.5.8,因为此设置仅适用于php 5.3.7及更高版本。然后我发现这个http://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issue我从那里下载了cacert.pem并替换了我从上面链接的curl.hxxx.se下载/制作的那个,它们都开始工作了。我试图让paypal沙盒IPN验证。很高兴在.pem交换后使用php.ini中的curl.cainfo设置,这仍然不在5.3.24中。
答案 3 :(得分:11)
string connectionString = "SERVER=********;PORT=****;DATABASE=********;UID=********;PASSWORD=******;";
MySqlConnection conn = new MySqlConnection(connectionString);
MySqlCommand command = conn.CreateCommand();
try
{
conn.Open();
command.CommandText = "SHOW FULL TABLES FROM ExampleDataBase";
}
catch
{
MessageBox.Show("error");
}
MySqlDataReader reader;
reader = command.ExecuteReader();
while (reader.Read())
{
string usermail = reader.GetString("email");
string[] mail = new String[] { usermail};
foreach (string s in mail)
{
listboxMails.Items.Add("email: " + s)
}
}
这将告诉您正在加载哪个php.ini文件,因此您知道要修改哪个。我浪费了很多时间来更改错误的php.ini文件,因为我安装了WAMP和XAMPP。
另外,在更改php.ini后,不要忘记重新启动WAMP服务器(或任何你使用的服务器)。
答案 4 :(得分:8)
答案 5 :(得分:3)
解决问题的最简单方法是在字段中添加以下命令。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
使用它不需要添加任何证书或任何东西。
答案 6 :(得分:3)
首先,我们需要下载此证书根证书包:
https://curl.haxx.se/ca/cacert.pem
将此文件移动到某个位置,例如Wamp / Xampp文件夹中的PHP文件夹。
然后编辑你的“php.ini”:
curl.cainfo =“C:/path/to/your/cacert.pem”
和
<强> openssl.cafile = “C:/path/to/your/cacert.pem”强>
重要提示:
请确保您通过Window Explorer直接打开“php.ini”文件。 (在我的情况下:“C:\ DevPrograms \ wamp64 \ bin \ php \ php5.6.25 \ php.ini”)。
请勿在系统托盘的Wamp / Xampp图标菜单中使用“php.ini”的快捷方式。在我遇到的某些情况下,这条捷径不起作用。
保存“php.ini”后,您无需在Wamp图标中“重新启动所有服务”或关闭/重新打开CMD。
尝试使用“var_dump(openssl_get_cert_locations());” 看看行: [ “ini_cafile”] =&GT; string(40)“C:/path/to/your/cacert.pem”
完成。
答案 7 :(得分:2)
问题已修复,请下载https://curl.haxx.se/ca/cacert.pem并将其“放在某处”,并在php.ini
中添加此行:
curl.cainfo = "C:/somewhere/cacert.pem"
PS:我尝试使用xampp在drupal上安装模块时出现此错误。
答案 8 :(得分:2)
将以下内容添加到php.ini [在路径中使用'/'而不是'\'] curl.cainfo =“path / cacert.pem”
重新启动我的XAMPP。它对我来说很好。感谢
答案 9 :(得分:2)
如果 cacert.pem 从上面的链接无效,请尝试这个为我工作
答案 10 :(得分:1)
首先,您必须从此链接下载证书
https://curl.haxx.se/ca/cacert.pem
并将其放在您想要的位置 可下载文件的名称是:cacert.pem 所以在我的情况下,我会把它放在C:\ wamp64 \ bin \ php \ cacert.pem
然后你必须指定php.ini文件的位置
例如,我使用php 7,php.ini文件位于: C:\ wamp64 \ BIN \ PHP中\ php7.0.10 \ php.ini中
因此,访问该文件并取消提交此行 ; openssl.cafile
也将它更新为看起来像这样 openssl.cafile = “C:\ wamp64 \ BIN \ PHP中\ cacert.pem”
最后重新启动你的apache服务器,这就是
答案 11 :(得分:1)
解决方案是编辑位于您的php版本中的文件php.ini(对我来说是php7.0.10) 不是apache的php.ini。您会发现像这样的注释文件; curl.cainfo 只需像curl.cainfo =“ C:\ permCertificate \ cacert.pem”那样更改此行
不要忘记创建“ permCertificate”目录并在其中复制“ cacert.pem”文件。
答案 12 :(得分:0)
只是你知道什么对我有用, https://curl.haxx.se/ca/cacert ....的文件无效,但是(http://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issue)帖子中的zip文件夹中的文件对我没有任何问题。
正如其他人所说,将证书文件复制到硬盘驱动器上的某个位置,更新一行
;curl.cainfo
在你的php.ini文件中阅读
curl.cainfo= "path_to_cert\cacert.pem"
重新启动Apache服务器。
答案 13 :(得分:0)
重要:4小时后,使用laravel 5.7和php 7. +,并运行/使用php artison服务 在localhost上尝试连接到mailgun。
重要以解决此问题不适用于ip http://127.0.0.1:8000 使用localhost或通过主机文件设置域名
好,