Problem with HTTPS client authentification

Problem with HTTPS client authentification

Secure Home | Search | About
 Microsoft Applications Security    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content add this group's latest topics to your Google content
Subject Author Date
Problem with HTTPS client authentification Michael Illgner 03-13-2006
Posted by Michael Illgner on March 13, 2006, 3:30 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
Hi folks,

I have a problem talking HTTPS to a web server using client
authentification. The web server is java based and is using a self
signed certificate. The server certificate is exported by the standard
java keytool command to a .cer file and is imported to the standard
windows certificate store "MY" on the client.
The client program is using the standard wininet.dll calls and the
client certificate is set on the created HttpRequest.
But HttpSendRequestEx is not working and gets an DosError 12157
ERROR_INTERNET_SECURITY_CHANNEL_ERROR. In the eventlog I see events like

36869 The SSL [client| server] credential’s certificate does not have a
private key information property attached to it

Why does the certificate on the client need a private key ?

Any ideas or hint ?
Thanks in advance
Michael

Posted by Mitch Gallant on March 13, 2006, 3:37 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
Client authentication means that some PRIVATE information that only the
client knows and has is sent to the server.
Client authentication in SSL works by having the client (say IE) sign some
bit of data (nonce) using the client-certificates PRIVATE key (typically
protected with a password) and that data is sent to the server proving that
the sender actually has the private key .. thus authentication the client as
the owner of that certificate.

Obviously, the client's PUBLIC certificate is not adequate.
You need to export BOTH the public/private key from java keystore
using say pfx keystore .. and import THAT into Microsoft CryptoAPI.

- Mitch Gallant
MVP Security

> Hi folks,
>
> I have a problem talking HTTPS to a web server using client authentification.
The web server is java based and is
> using a self signed certificate. The server certificate is exported by the
standard java keytool command to a .cer
> file and is imported to the standard windows certificate store "MY" on the
client.
> The client program is using the standard wininet.dll calls and the client
certificate is set on the created
> HttpRequest.
> But HttpSendRequestEx is not working and gets an DosError 12157
ERROR_INTERNET_SECURITY_CHANNEL_ERROR. In the
> eventlog I see events like
>
> 36869 The SSL [client| server] credential’s certificate does not have a
private key information property attached to
> it
>
> Why does the certificate on the client need a private key ?
>
> Any ideas or hint ?
> Thanks in advance
> Michael



Similar ThreadsPosted
Forefront Client Security after-install problem July 5, 2007, 9:00 am
Re: Changing https to http on Win2K3 October 4, 2005, 3:42 am
Windows Media Player 10 not working over HTTPS May 31, 2006, 12:55 pm
ASP authentification by ip-number April 24, 2008, 2:28 pm
RDP Client & SSO September 6, 2005, 2:16 am
XDA2 VPN client January 5, 2006, 10:58 am
VPN Client Security August 29, 2008, 10:54 am
Antivirus on server or client? July 31, 2005, 6:50 am
Client can't reach SUS server December 13, 2005, 6:06 pm
Logging activity on client PCs August 25, 2006, 10:53 am

The site map in XML format XML site map

Contact Us | Privacy Policy