在本地使用XAMPP搭建PHP开发环境时,如果需要调用第三方HTTPS接口或者测试支付回调,经常会发现file_get_contents和curl都无法正常访问加密地址。根本原因在于XAMPP自带的PHP没有启用OpenSSL扩展,导致无法建立SSL连接。下面说明具体的开启与配置方式。

一、修改php.ini开启OpenSSL
XAMPP的PHP配置文件一般位于安装目录下的phpphp.ini。用记事本或编辑器打开后,搜索extension=openssl。如果前面有分号,就把分号删掉,保存文件。
; 修改前 ;extension=openssl ; 修改后 extension=openssl
同时确认文件中存在以下配置项,保证OpenSSL能找到证书目录:
openssl.cafile="C:xamppphpextrassslcacert.pem" openssl.capath="C:xamppphpextrasssl" </code>
二、重启Apache使配置生效
回到XAMPP控制面板,先停止Apache,再重新启动。启动后在浏览器访问http://localhost/dashboard/phpinfo.php,搜索openssl,若能看到模块信息,说明扩展已加载。
检查curl是否支持HTTPS
在phpinfo页面中搜索curl,查看栏目里是否包含HTTPS字样。如果未显示,需要确认php.ini中extension=curl也已开启。
三、使用PHP发起HTTPS请求示例
配置完成后,可以用下面这段代码测试能否正常获取HTTPS内容:
<?php
// 初始化curl
$ch = curl_init();
// 设置目标为HTTPS地址
curl_setopt($ch, CURLOPT_URL, "https://ipipp.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 本地可暂不验证证书,生产环境建议开启
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec($ch);
if ($response === false) {
echo "请求失败: " . curl_error($ch);
} else {
echo "请求成功,长度: " . strlen($response);
}
curl_close($ch);
?>
四、常见问题处理
- 若提示cacert.pem不存在,可到官方仓库下载并放到phpextrasssl目录。
- 某些杀毒软件会拦截本地Apache的SSL模块,可尝试临时关闭后再重启服务。
- 使用file_get_contents访问HTTPS时,需保证php.ini中allow_url_fopen=On。
完成上述步骤后,XAMPP就可以稳定地发起HTTPS请求,满足本地接口联调需要。