Force.com System.CalloutException:DER输入,整数标记错误

时间:2013-06-15 00:53:13

标签: apex-code force.com

我正在尝试向第三方服务发出标注,但我收到消息“System.CalloutException:DER input,Integer tag”。第三方为我们提供了自签名的客户证书。我看到那里的迹象(例如hereAPEX documentation中使用setClientCertificate的'遗留'方法可能是可能的,虽然我意识到这些是SOAP示例,我没有使用。< / p>

我已将证书转换为Base64。我的代码如下。任何帮助将不胜感激。

HttpRequest req = new HttpRequest();    
req.setEndpoint('https://myurl');
req.setMethod('POST');

string cert = 'mybase64encodedcert';
string certpass = 'mycertpass';

req.setClientCertificate(cert,certpass);

string thebody = 'somebody';
req.setBody(thebody);

Http http = new Http();
HTTPResponse res = http.send(req);

顺便说一下,我已经阅读了有关客户证书和所有参考资料的APEX文档。我不认为我正在做一些文档中涵盖的内容。

1 个答案:

答案 0 :(得分:0)

我犯的错误是我只编码了公钥,并在setClientCertificate中使用了它。我需要做的是对整个pfx文件进行base64编码,然后将其用作cert字符串:

openssl base64 -in input.pfx -out outputfile.txt

我找到了答案here