首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADP API无法通过SSL错误

ADP API无法通过SSL错误
EN

Stack Overflow用户
提问于 2016-04-13 15:22:35
回答 2查看 1.2K关注 0票数 0

我有一个ADP SSL密钥,pem,pfx,csr。我正在尝试使用Xampp服务器从本地计算机连接。

为了我的一生,我无法克服这个错误:“无法使用客户端证书(没有找到密钥或错误的通行证短语?)”。

通过在MS管理控制台中安装.pfx文件,我能够让Google使用ADP API。

我需要在Xampp服务器本身的某个地方安装这些文件吗?

我在应用程序中有一个文件夹,用来存储我所指向的.key和.pem文件。

任何洞察力都是值得赞赏的。

代码语言:javascript
复制
$auth = array();
$auth['cert'] = "/certs/xxxxxxxxxxxxxxx.pem";
$auth['key'] = "/certs/xxxxxxxxxxxxxxxx.key";
$auth['user'] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

$postfields = array(
   "grant_type" => "client_credentials"
);

$ch = curl_init();
curl_setopt_array($ch, array(
   CURLOPT_URL => "https://api.adp.com/auth/oauth/v2/token",
   CURLOPT_SSLCERT => $auth['cert'],
   CURLOPT_SSLKEY => $auth['key'],
   CURLOPT_USERPWD => $auth['user'],
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_POSTFIELDS => http_build_query($postfields, '', '&')
));

$auth['token'] = curl_exec($ch);
curl_close($ch);

$response = json_decode($auth['token'], true);


$_SESSION['bearer'] = $response['access_token'];

$ch = curl_init();

curl_setopt_array($ch, array(

   CURLOPT_URL => 'https://api.adp.com/hr/v1/corporate-contacts' ,
   CURLOPT_SSLCERT => $auth['cert'],
   CURLOPT_SSLKEY => $auth['key'],
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_HTTPHEADER => array(
   'Accept: application/json',
   'Authorization: Bearer ' . $auth['token']
)

));
$data = curl_exec($ch);

if(!$data)
    print_r('ERROR: ' . curl_error($ch));
else
    print_r('SUCCESS: ' . curl_error($ch));

curl_close($ch);
EN

回答 2

Stack Overflow用户

发布于 2016-04-13 17:22:15

。。我无法通过这个错误:“无法使用客户端证书(没有找到密钥或错误的通行证短语?)”。

我不知道ADP API,但错误消息表明,要么找不到密钥(您声称它在那里),要么没有正确的权限( web服务器可读吗?),没有正确的格式(应该以-----BEGIN RSA PRIVATE KEY-----等开头),或者您对该密钥有密码,并且没有提供错误的密码。查看代码,我看到您提供了cert和key,但是没有密码:

代码语言:javascript
复制
CURLOPT_SSLCERT => $auth['cert'],
CURLOPT_SSLKEY => $auth['key'],
CURLOPT_USERPWD => $auth['user'],

如果密码完全丢失,我不知道您是否试图错误地使用CURLOPT_USERPWD来提供密码,但是要添加,您需要使用KEYPAS社署

票数 0
EN

Stack Overflow用户

发布于 2016-04-13 21:29:58

在进行了所有这些故障排除之后,我发现.pem和.key文件的路径不正确。

正确的语法:$auth‘’cert‘= DIR。"/certs/my_cert.pem";$auth‘’cert‘= DIR。“/证书/我的证书”;

现在工作(失去了一些脑细胞)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36602948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档