[Mono-list] HttpWebRequest and client certificates

Sebastien Pouliot sebastien.pouliot at gmail.com
Wed May 9 13:43:53 EDT 2007


Bonjour Samuel,

I did commit the hack into SVN and it does work with XSP(*). Let me know
if this works, or not, in your web service scenario.

(*) http://www.mono-project.com/UsingClientCertificatesWithXSP
wiki page was updated to reflect this

Sebastien

On Mon, 2007-05-07 at 13:25 -0400, Sebastien Pouliot wrote:
> Bonjour Samuel,
> 
> On Wed, 2007-05-02 at 14:29 +0200, Samuel CARRIERE wrote:
> 
> 5 days to get this email ? I guess/hope you're not subscribed to the
> list.
> 
> > >On Mon, 2007-03-12 at 17:46 +0100, Michal Ziemski wrote:
> > >> Hi!
> > >> 
> > >> Does HttpWebRequest support client certificates in mono?
> > >> Th FAQ 
> > >>
> > (http://www.mono-project.com/FAQ:_Security#Are_SSL_client_certificates_supported_.3F)
> > >> states it doesn't in 1.1, but might in 2.0
> > >> 
> > >> Does it work in 2.0?
> > >
> > >There as been progress, both for the new X509Certificate2 and
> > X509Store
> > >classes, but the HttpWebRequest code hasn't yet been updated. This
> > part
> > >is somewhat interlocked with the new SslStream class (2.0) and how
> > we'll
> > >provide it. 
> > >
> > >However at this stage it may be possible to make a quick hack to add
> > >client-side certificate support for *some* 2.0 apps (depending on how
> > >the certificate is loaded).
> > >
> > >> 
> > >> Cheers!
> > >> Michal Ziemski
> > >> 
> >  
> > Hi everybody,
> >  
> > I am working on a C# mono application that needs client certificates
> > to call a webservice.
> > Sebastien, can you explain a bit what sort of "quick hack" it may be
> > possible to make, to
> > make this following test code work ?
> >  
> >  static void Main(string[] args)
> >  {
> >     // Instanciate webservice client
> >     WSAddition.Addition client = new testWsSSL.WSAddition.Addition();
> >     X509Certificate2 Cert = new
> > X509Certificate2("/my/clientCertificate.p12", "password");
> >     client.ClientCertificates.Add(Cert); 
> >     // Call webservice method
> >     int result = client.add(5,6);
> >     Console.WriteLine("Result : " + result);
> >  }
> > 
> > Does it require to hack the HttpWebRequest class ?
> 
> Yes, but it should be simple. The hack is to supply the private key
> (available from X509Certificate2) to the SSL code.
> 
> It would probably take me much longer to set up a client and server web
> service to test it than to implement it. However if you open a bug
> report (http://bugzilla.ximian.com) with a client, working with a public
> SSL/client certificate web service, I should be able to add this fairly
> quickly.



More information about the Mono-list mailing list