• Kirubakaran Shanmugam 1
  • NEWBIE
  • 0 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 4
    Replies
Hi,

I am trying to integrate SFDC with Remedy jsing web services. I am sending HTTP requests to the Remedy endpoint  and due to firewall issues the request is not thru and below error message is thrown:

System.CalloutException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 404 Not Found"

Assuming the firewall issue is rectified, I need to send the callouts in a secure way using two-way SSL. I have created the CSR and submitted for signing to a CA. Once i receive it, i will upload the same to Salesforce.
What should bee the next in order to make 2way SSL autentication. Any thoughts would be helpful.
Hi,

I am trying to integrate SFDC with Remedy jsing web services. I am sending HTTP requests to the Remedy endpoint  and due to firewall issues the request is not thru and below error message is thrown:

System.CalloutException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 404 Not Found"

Assuming the firewall issue is rectified, I need to send the callouts in a secure way using two-way SSL. I have created the CSR and submitted for signing to a CA. Once i receive it, i will upload the same to Salesforce.
What should bee the next in order to make 2way SSL autentication. Any thoughts would be helpful.
Hello all,

I'm currently working on data integration for one of our customers. They are using Maconomy database system and they have set up some kind of web service through which we can access data and transfer it between Salesforce and Maconomy. At first we tried to use normal HTTP connection, but they couldn't change to port 80 as they had other services connected on that web service as well. So we decided to move to secure connection later to match Salesforce port range. 

First we have tried with two-way SSL connection but we had a lot of problems. First I'm constantly getting an error message:
System.CalloutException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
First we thought it was certificate problem. We created CA signed request inside Salesforce and sent it to our partner to sign it and they have returned signed certificate which we imported into Salesforce. Problem was that thing didn't worked (error above). Then I deleted certificate from org and requested a JKS certificate from them to import into Salesforce. Import was unsuccessful as nothing happened when I clicked import, no certificate has shown in org, nothing. 

Then we decided to just one one-way SSL secured conenction until we get data integration done, but we still have problems with error above. I have already spent a lot of day trying different things but nothing seems to work. I have also tried to connect directly to their web service through rest client extension for chrome with success so one way SSL connection seems to work, but not in Salesforce. The connection uses 10443 port. 

Now I would like to know what might be wrong here, their certificate is Signed with GeoTrust Global CA as is shown on this picture (the deleted part is the actual name of their company, I deleted it for security reasons): 
User-added image

Here is some code snippet from my testing web service (code is not final as I'm only trying to get thigns work first):
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setEndpoint('https:/link-address:10443/some-things-after');
req.setHeader('Accept-Encoding', 'gzip,deflate');
req.setHeader('Content-Type', 'text/xml;charset=UTF-8'); 
req.setHeader('SOAPAction', 'https:/link-address:10443/some-things-after');
req.setHeader('Host', 'https://link-address:10443');
req.setHeader('Connection', 'Keep-Alive');
req.setMethod('POST');
req.setTimeout(120000);
req.setBody('format=JSON&type=TYPE_MQLQuery&user=******&pass=*******&mqlquery=mselect+Name1+from+OrderHeader+where+OrderNumber+%3D+100&mqlparams=%7B%7D&SimulationOnly=1');
		
HttpResponse res = new HttpResponse();
res = h.send(req);

Code always fails at last line when I send request. 

Now my question is, what can be done about that error? Is there something wrong with their certificate, server settings or Salesforce? I would really like to get this thing going ASAP as we are already 2 weeks behind schedule because of this connectivity issue. :( 

Best regards.
Hello,

I am working on integrating Salesforce.com and external system (ERP).  I am making a call out using SOAP API

What I have provided to third party?
- Create a user for integration and shared the username,password&securitytoken
-Created an global apex class with webservice methods.
-Generated WSDL from above class
-Generated Enterprise WSDL

What I received from third party?
-WSDL (https end point)
-.PEM certificate and .pfx format certifcate

Development process on Salesforce side

I have generated a single Apex class (Gnerate from WSDL) from the WSDL I recieved from third party.

One of the classes generated is below

public class HTTPS_Port {
        public String endpoint_x = ‘bhla bhla…’;
        public Map<String,String> inputHttpHeaders_x;
        public Map<String,String> outputHttpHeaders_x;
        public String clientCertName_x;
        public String clientCert_x;
        public String clientCertPasswd_x;
        public Integer timeout_x;



            WebServiceCallout.invoke(
              this,
              request_x,
              response_map_x,
              new String[]{endpoint_x,
              'http://sap.com/xi/WebService/soap1.1',
              'urn:sap-com:document:sap:soap:functions:mc-style',
              'YRequest',
              'urn:sap-com:document:sap:soap:functions:mc-style',
              'YRequestResponse',
              'WebServiceClient.YRequestResponse_element'}
            );
            response_x = response_map_x.get('response_x');
            return response_x.FStatus;
        }
    }


I have generated an apex class to call the third party service (above generated class). In this class I have to provide the following

public String clientCertName_x;// may be this is required if the certificate is generated with in SAlesforce org. So I might not need to pass this info.
        public String clientCert_x; // This is the certifcate which has based64. I am good with this
        public String clientCertPasswd_x; // what is the password i need to enter  here. I asked third party to give this password but they say don't have it. Where do i get this password from?

My call fails if I don't enter the password. Error is - CertPasswd cannot be null
If the give a blank string for the password, the Error is "Error MessageIO Exception: DER input, Integer tag error"

I am stuck with the password issue here. Can someone help me out if there is something to be on Salesforce side? Am I missing something?

Any help is greatly appreciated.

Thank you!