Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install SSL client certificate from a webserver for both FF and IE?

After login, I want a web-page to be able to provide both firefox and MSIE-8+ web-site clients the ability to download and install a unique SSL client certificate for the website so they need never login again from that machine.

The back-end is simple and done - I have a directory on my linux web-server where typing "make USER=$username ${username}.crt.pkcs12" will create a new client key and a valid, signed PKCS-12 SSL client certificate file .

But how to best provide a single method whereby both logged-in (with password) MSIE and firefox users can download these certificates and bring up the "install client certificate" browser GUI dialog ?

It is straightforward to simply push the certificate as a file of mime-type ? - say 'application/x-pkcs7-certreqresp' ?? so the user is prompted to save the file; but I want them to be prompted to add the certificate for this website to the SSL certificate manager's client cert store. Then I found this for firefox.

So this is fairly straightforward
but all I can find for MSIE is this.

So it is simple to invoke firefox'x security manager API from javascript, but I can find no way of doing so from MSIE's javascript - one would need to invoke .NET C# code to access the .NET APIs, and the X509Store APIs seem not to be exported to MSIE javascript .

As I see it, options are then to provide a mono .NET web service on my linux webserver and redirect requests from MSIE clients for the certificates to this service , which can then download .NET code that the client runs to install the certificate ?

Or I can make MSIE clients download a "Install_Cert.VB" visual basic script that will run "WinHttpCertCfg.exe" ?

Or is there some magic MSIE security manager javascript API that I'm just not finding ?

Sorry, I've been a windows refusnik since 1992; I use only Linux / Solaris / BSD / MacOS and do not have access to a windows machine.

Anyone been here before / have any advice to offer ? If so, it would be much appreciated ! Thanks in advance, Jason

like image 888
JVD Avatar asked Apr 03 '11 17:04

JVD


People also ask

Can I install SSL certificate on multiple servers?

No matter what language you speak, no matter what industry you work in, the answer is still the same: Yes, you can use one SSL certificate for multiple domains on the same server. And, depending on the vendor, you also can use one SSL certificate on multiple servers.

Can I use same certificate for server and client?

It's technically possible for a TLS certificate to be used as both a server certificate and a client certificate. The TLS certificate for this very site has its key usage set that way, for instance. But the server which requires a client certificate does so to authenticate the client.

Can I use the same SSL certificate on multiple applications?

As such, one of the common questions that many enterprises ask when they are considering investing or renewing their security certificates, is: “Can I use just one TLS/SSL Certificate to secure multiple domains?” The answer is, obviously, yes—you can buy one wildcard SSL certificate to secure unlimited subdomains.


2 Answers

Probably not an answer you'd expect to get, but the easiest you can do is create an ActiveX that will put the certificate to the right certificate store in IE. Since ActiveX is only handled by IE, you will have IE-specific solution and you will need to have just one version of ActiveX control. For Firefox (and Chrome and Opera) you would need to find other solutions.

like image 88
Eugene Mayevski 'Callback Avatar answered Oct 22 '22 00:10

Eugene Mayevski 'Callback


Here's some documentation about ways to get client side SSL certificates installed.

As you might expect, every browser is different, mobile devices are missing features in many cases, and there are lots of ways to do the same thing. Looks like many people are banging their heads on this stuff.

like image 20
Tel Avatar answered Oct 22 '22 01:10

Tel