You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel项目中配置Wamp本地颁发者证书解决Nexmo短信SSL错误

解决cURL error 60: SSL证书问题(Nexmo + Laravel + Wamp)

这个错误本质是cURL在验证Nexmo服务器的SSL证书时,找不到本地可信的根CA证书,导致无法建立安全连接。下面是具体的解决步骤,分开发环境临时方案和生产级配置两种:

一、生产/正规环境:配置Wamp的OpenSSL根证书

这是推荐的做法,能保证SSL连接的安全性:

  1. 下载可信根CA证书包
    下载Mozilla维护的标准根CA证书包,保存为cacert.pem(建议放在Wamp的PHP目录下,比如wamp64/bin/php/,方便管理)。

  2. 修改PHP配置文件
    找到你当前Wamp使用的PHP版本对应的php.ini文件(路径一般是wamp64/bin/php/php[你的版本号]/php.ini,比如php8.2.0文件夹下的php.ini):

    • 打开文件后,搜索找到curl.cainfo和openssl.cafile这两行
    • 去掉行首的分号(取消注释),然后设置为你刚才下载的cacert.pem的绝对路径,示例:
      curl.cainfo = "C:/wamp64/bin/php/cacert.pem"
      openssl.cafile = "C:/wamp64/bin/php/cacert.pem"
      
      注意路径要用正斜杠/或者双反斜杠\\,避免Windows路径的转义问题。
  3. 重启Wamp服务器
    右键点击Wamp托盘图标,选择"Restart All Services",让配置生效。

二、开发环境临时方案(仅限测试用)

如果你只是本地开发测试,不想花时间配置证书,可以临时关闭SSL验证(绝对不要在生产环境使用):
修改你的路由代码,手动给Nexmo客户端的Guzzle设置verify为false:

Route::get('/sms/send/{to}', function($to){
    // 手动初始化Nexmo客户端,配置Guzzle选项
    $nexmo = new \Nexmo\Client(new \Nexmo\Client\Credentials\Basic(
        env('NEXMO_KEY'),
        env('NEXMO_SECRET')
    ));
    
    // 关闭SSL验证(仅开发环境!)
    $nexmo->setHttpClient(new \GuzzleHttp\Client([
        'verify' => false
    ]));

    $message = $nexmo->message()->send([
        'to' => $to,
        'from' => env('NEXMO_NUMBER'),
        'text' => 'Sending SMS from Laravel. Woohoo!'
    ]);
    
    \Illuminate\Support\Facades\Log::info('sent message: ' . $message['message-id']);
    return "短信已发送,消息ID:{$message['message-id']}";
});

三、验证配置是否生效

配置完成后,重新访问你的路由/sms/send/[你的手机号],如果没有再出现cURL 60错误,并且日志里能看到消息ID,就说明配置成功了。

内容的提问来源于stack exchange,提问作者Pasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:04:58