From: sqlguy on
I have been racking my brain all day about this problem. I am trying to make a
web services call (through any method I can manage) to a server using WSDL.
Problem is that I am required to use a client certificate that was provided by
the server administrators of the target web service. I can't find any way to
use CFHTTP to make this work, as it does not appear to have the ability to send
a Client Certificate like CFLDAP does.

I have converted the Client Certificate to just about every form I can think
of. I have used the "keytool" tool in Java to import it... BUT... I am now
thinking that it was not the way to go.
/opt/coldfusion/jre/bin/keytool -import -keystore
/opt/coldfusion/jre/lib/security/cacerts -alias costco_ssl3 -file
vendorcert2006_base64.cer

Does anyone know of a work-around that would allow me to hit this secure web
service using a Client Certificate? If the server owner were not Costco, I
would be asking to remove the necessity to send this client certificate....
but, as you can imagine, they are not going to be flexible.

Thank you in advance!


From: MikerRoo on
Unless you received an error while importing the certificate, it should work.

Try posting your EXACT error message here.

Also, make sure that the certificate really is imported properly. Please do
the following:
Change to the store directory and run all commands from there. This can be
important.
cd /opt/coldfusion/jre/lib/security/
Import the cert using the recommended syntax:
/opt/coldfusion/jre/bin/keytool -import -keystore cacerts -file
vendorcert2006_base64.cer -alias costco_ssl3 -storepass changeit
Verify the import:
/opt/coldfusion/jre/bin/keytool -list -keystore cacerts -alias
costco_ssl3 -storepass changeit -v
Restart Java/JRE and coldfusion




From: sqlguy on
Thank you for the repy...

I did exactly as you specified... and the cert was imported correctly. I
still can't hit the site with the CFHTTP call.

I simply get this message:
"The page requires a client certificate"

So, it is not using the client certificate that is should be using. Am I
supposed to use the URL of the domain as the ALIAS?

Here is the code that I am using to call the site....

<cfhttp url="https://costcovendor.costco.com" method="get"
username="USERNAME(a)costco.com" password="PASSXXXXX" />
<cfdump var="#cfhttp#">
<cfoutput>#cfhttp.filecontent#</cfoutput>

Now, this is a very simplified version that I ended up striping down to, after
all the expected processes were failing... But, I would hope that it would at
least not return the error about the missing Client Certificate.

I appreciate the help!

-Mark

From: sqlguy on
"HTTP 403.7 - Forbidden: Client certificate required
Internet Information Services"

Is the full error message that I get...
From: MikerRoo on
Forgot to ask... What version of CF are you using?
Are you running on JRun by any chance?

Anyway, add port=443 to your CFHTTP tag.

Next, browse to the secure sight yourself using a browser that is running on
your CF server (if at all possible).

Check for the following:
More than one certificate installed / used?
Costco redirects to different servers/IP's/domain?
Cert info in browser matches info from the import verification, above?
Cert is Base64-encoded X.509 format?
Proxy-server information used/needed by browser (if any) matches proxy
statements of <cfhttp> tag?



 |  Next  |  Last
Pages: 1 2 3
Next: mySQL and cftransaction