Using pfx certificate to authenticate a webrequest

N

Nelson R.

Hi,

i need to get some info from a website page that requires an
certificate.

Ive got the provided certificate installed in IE, and when accessing
the website page, it shows a window to select the client certificate
and then shows the page correctly.

Im trying to do this by code (vs2003 C# aspnet), using webrequest.

The certificate is in an pfx file and does not require password. I've
exported the file using IE to DER encoded binary X.509 (.cer), since
its the only format used by .net webrequest certificates (?)

My code:

X509Certificate certificate =
X509Certificate.CreateFromCertFile(Server.MapPath("file.cer"));
HttpWebRequest req =
(HttpWebRequest)WebRequest.Create("https://websiteurl");
req.Method="POST";
req.ClientCertificates.Add(certificate);

// ...
// here goes the request response read
// ...


I got this error:

System.Net.WebException: The underlying connection was closed: Could
not establish secure channel for SSL/TLS. --->
System.ComponentModel.Win32Exception: The message received was
unexpected or badly formatted at
System.Net.TlsStream.EndRead(IAsyncResult asyncResult) at
System.Net.Connection.ReadCallback(IAsyncResult asyncResult) --- End
of inner exception stack trace --- at
System.Net.HttpWebRequest.CheckFinalStatus() at
System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at
System.Net.HttpWebRequest.GetResponse()....


From the error i can see that the certificate is invalid, because if i
dont use the certificate i get the same error messagem.

So... anyone knows how or point me to the right path to do a request
from an https website, using an pfx file?


Best regards,
Nelson R.
 
N

Nelson R.

Hi,

dont understand why nobody ever answer my questions about using
certificates in aspnet (this is not my first post about this).

Well, ive solved my problem. I had an pfx certificate installed and
exported to x509 format. Using webrequest and the exported certificate
i was getting an error accessing the website (https)

The problem was because my ASPNET account didnt have the rights to
access installed certificate.

I had to use a microsoft tool (winhttpcertcfg) to give access to
ASPNET account.

Tool url:
http://msdn.microsoft.com/library/d...cfg_exe__a_certificate_configuration_tool.asp


Know all works...

Hope this will help anyone who has the same problem...


Best regards,
Nelson R.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top