2013-06-15 3 views
0

타사 서비스에 대한 콜 아웃을하려고하는데 "System.CalloutException : DER input, Integer tag"메시지가 나타납니다. 제 3자가 사용할 자체 서명 된 클라이언트 인증서를 제공했습니다. 나는 (예 : here와 나는이 내가 사용하지 않는 SOAP 예, 있습니다 실현하지만 이것은, setClientCertificate와 '유산'방법을 사용하여 가능 수 있다는 APEX documentation.Force.com System.CalloutException : DER 입력, 정수 태그 오류

에 내가 인증서가 변환 한 거기 표시를 참조 내 코드는 다음과 같습니다 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); 

을 BTW, 나는 클라이언트 인증서에 APEX의 문서를 읽고 및 참조 된 모든 자료는. 내가 뭔가를하고 있어요 생각하지 않는다

답변

0

내가 작성한 실수는 내가 인코딩 한 것입니다. 공개 열쇠만으로, setClientCertificate로 그것을 사용하고있었습니다. 내가 할 필요하면 base64로 전체 PFX 파일을 인코딩에 다음 인증서 문자열로 그것을 사용했다 :

하려면 openssl base64로 -in input.pfx -out outputfile.txt

내가 대답 here을 발견했다.