On Thursday 27 October 2005 07:25, M G wrote:
> Hi list,
>
> My goal is to create mutual authentication for small business (each client
> app is also a server that can share data securely), is there a way to use
> SSL the "normal" way i.e., to create an X509 store, set verify function,
> use certificates, etc, ... but not require usrs to sign with a CA
> certificate?  i.e., Everyone has self-signed certificates with fingerprints
> that are shared via out-of-band methods.

As far as I know, you can put a self-signed certificate into an X509_STORE as 
trusted and then the connection will verify properly.  In fact, all root CA 
certs that you usually have in the X509_STORE already are self-signed.  The 
only difference between a normal cert and a "CA" cert is that the CA certs 
have extra bits in them to indicate they can sign for other certs (but you 
don't need this feature, nor is this feature required for a cert to be 
allowed inside an X509_STORE and trusted).

Putting your self-signed certs into the X509_STORE would be the safest method 
of using SSL, because then everything really would be "normal".  You'd do an 
SSL connection as you're supposed to, the cert would verify, and off you go.  
This may also be a more future-proof and compatible method, since not all SSL 
libraries will necessarily allow you to ignore invalid certificates (I'm told 
this is how J2ME works).

The only trouble I can see you running into is if you don't have all the 
client certificates pre-traded.  If each client only has a cache of 
fingerprints, then you will have to do some extra voodoo.  Handling this in 
OpenSSL would be fairly easy, just compare the fingerprint of the certificate 
with your list of allowed fingerprints.

-Justin
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to