在XAMPP中启用对CURL的SSL支持

在XAMPP中启用对CURL的SSL支持,ssl,curl,https,xampp,Ssl,Curl,Https,Xampp,我使用的是一个编码的PHP脚本,它需要对CURL的SSL支持 我目前正在使用XAMPP进行本地开发,需要知道如何更新默认CURL,以便通过它启用SSL 我寻求升级/支持的原因是,我遇到了以下错误,当谷歌搜索到这些错误时,我知道我的机器上的CURL不支持SSL SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE

我使用的是一个编码的PHP脚本,它需要对CURL的SSL支持

我目前正在使用XAMPP进行本地开发,需要知道如何更新默认CURL,以便通过它启用SSL

我寻求升级/支持的原因是,我遇到了以下错误,当谷歌搜索到这些错误时,我知道我的机器上的CURL不支持SSL

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
有人给我推荐吗? 我当前的本地服务器配置:

XAMPP 1.7.3 卷曲支持已启用
卷曲信息7.19.6
Apache版本Apache/2.2.14(Win32)DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l模块自动索引颜色 PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 perl/v5.10.1
加载的模块核心模块winnt http\u核心模块so模块操作 mod_别名mod_asis mod_auth_basic mod_auth_摘要mod_authn_默认值 mod_authn_文件mod_authz_默认值 mod_authz_组文件mod_authz_主机 mod_authz_用户mod_cgi mod_dav mod_dav_fs mod_dav_lock mod_dir mod_env mod_头mod_include 模块信息模块isapi模块日志配置 模组mime模组协商模组重写 mod_setenvif mod_ssl mod_状态 mod_vhost_别名mod_自动索引_颜色 mod_php5 mod_perl mod_apreq2
服务器签名Apache/2.2.14 (Win32)DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l模块自动索引颜色 PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 perl/v5.10.1服务器位于 本地主机端口80
服务器软件Apache/2.2.14(Win32)DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l模块自动索引颜色 PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 perl/v5.10.1


您的计算机不支持?您发布的错误意味着CURL无法验证远程服务器的SSL证书,并且不一定表明您的机器存在特定的不足。 在我以前使用CURL的经验中,它默认不接受/信任任何证书。根据您的设置和计划执行的操作,您可能希望信任单个自签名证书[[无法验证自签名证书!]](例如,来自您运行的另一台计算机),或者您可能希望信任真正的证书颁发机构(这将使能验证由该CA签名的任何证书)。如果您熟悉如何更改CURL的设置,本教程非常简单:

如果选择该路径,您可以选择根CA,但如果您只是在自己的两台机器之间保护传输,则只需将CURL设置为信任另一台机器的证书

另一方面,如果您确实对SSL有一些更深层次的问题,那么它可能是由许多事情造成的,例如在没有SSL支持的情况下构建。如果您正在制作、配置和编译自己的CURL构建,您可能希望了解有关SSL的主题,包括

请注意,在后一个链接(FAQ)中,无法验证自签名证书。如果您正在连接到您自己的另一台服务器,则其证书需要由CA签名,并且该CA的证书需要由CURL信任,这样连接才能成功。如果你只需要获得一个签名,或者你可以建立自己的CA,那么就有免费的CA(根据我的经验,让已经建立的人签署CA要容易十倍)。如果另一台服务器正在托管一个处理“真实世界”(金钱、产品、个人信息等)的安全站点,则其证书应该是可信的CA(VISA、Equifax、Comodo,您可以在每个浏览器中找到可信根CA的列表),或者您应该让可信CA对其进行签名


我已经介绍了如何应对该错误,但如果这些都没有帮助,那么关于您的设置和系统的更多信息可能会有所帮助。:)

您应该使用证书颁发机构对公钥进行签名(有一些脚本可以为您执行这些操作),或者您可以发送证书签名请求,并使用您自己创建的CA或一些免费证书颁发机构对其进行签名

CA.pl脚本/usr/lib/ssl/misc/CA.pl的路径

此命令将创建一个证书颁发机构,需要它对服务器密钥进行签名 此CA的公钥也必须包含在CA_文件中

$ CA.pl -newca
为服务器和证书请求创建私钥

$ CA.pl -newreq
从私钥和请求(涉及CA私钥)创建服务器证书


对我来说,一个非常简单的解决办法是:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
致电前:

 curl_exec():
在php文件中


我相信这会禁用SSL证书的所有验证。

在ubuntu中,您可以在路径/usr/lib/SSL/misc/CA.pl中找到这个(CA.pl)脚本。。。通过禁用证书验证,您就为潜在的MITM攻击敞开了大门,而SSL/TLS正是为了防止这种攻击。别这样!是的。我应该在答复中更加注意这一点。只有当你没有做任何重要的事情时才这样做。我在localhost上使用它访问我个人编程的网站。
 curl_exec():