serverXMLHTTP SSL Certificate Issues using LotusScript

I need help with serverxmlHTTP / xmlHTTP requests.

I’m trying to get a lotusscript agent to work with a cc processor using their generated certificate. My application collects data via the web, then using an agent creates a request that is sent to the processor. Based on the results from their xml response I can proceed as necessary.

The problem is that I can’t seem to get serverXMLHTTP to use an installed certificate when making a call using LotusScript. My application makes a call to a url using the following snippet:

Set objHttp = CreateObject(“Msxml2.serverXMLHTTP.3.0”)

objHttp.open “POST”, url, False,“uname”,“pw”

objHttp.setRequestHeader “MIME-VERSION”, “1.0”

objHttp.setRequestHeader “Content-type”, “text/html”

objHttp.setRequestHeader “CONTENT-TRANSFER-ENCODING”, “text”

objHttp.send(req)

Set xmlDoc = CreateObject(“Msxml2.DOMDocument”)

xmlDoc.loadXML (objHttp.ResponseText)

respVal = objHttp.ResponseText

I continue to receive the error:

msxml3.dll: A certificate is required to complete client authentication.

I use this snippet of code for various other retrievals and it works.

I cant use xmlHTTP because it does not support certificates, thus serverxmlHTTP call. The certificate is a .p12 file. I also have the .pem file which I am able to use with cURL from the command line prompt.

I have installed the certificate using microsoft’s recommended procedure from MSDN:

http://support.microsoft.com/kb/301429 . This installs the certificate for user IWAM_machinename. I am assuming that when Domino makes the serverxmlHTTP request it is using the IWAM_machinename account, but can’t be sure. I installed the certificate for Administrator, also, but no luck.

Does anyone know what Windows account / username Domino uses when making the xmlHTTP or serverxmlHTTP request? This might help.

I have tested the certificate by using I.E. directly, and it is properly installed as the page retrieved as expected. I also tried using cURL to test the certificate and I was successful in retreiving the page.

Thanks.

-carlo

Subject: Using ssl and proxy servers with msxml objects

I know this is way too late to solve your problem, but here it is for others searching the forum:

Set objHttp = CreateObject(“Msxml2.serverXMLHTTP.3.0”)

'this basically ignores certificate errors but

'at least your transaction will be encrypted

objHttp.setOption “2”,“13056”

'if you have a proxy server that you need to set

objHttp.setProxy “2”,“proxy.server.name”,“”

'you may have to use Msxml version 4.0 (“Msxml.serverXMLHTTP.4.0”)

objHttp.open “POST”, url, False,“uname”,“pw”

objHttp.setRequestHeader “MIME-VERSION”, “1.0”

objHttp.setRequestHeader “Content-type”, “text/html”

objHttp.setRequestHeader “CONTENT-TRANSFER-ENCODING”, “text”

objHttp.send(req)

NOTE