On Tue, Jul 01, 2003 at 03:19:14PM +0100, Marius Cabas wrote:
> I want to check the client certificate from an SLL server. In the
> callback function passed to SSL_CTX_set_verify() I'm getting the error
> 18: X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT (self signed certificate). I
> suppose the certificate I'm using is not the right one. Can somebody help
> me to generate all type of certificates needed by an SSL server and
> client. Please, I'm new to OpenSSL.

[ Retry. Apologies if you get this twice. ]

(Without consulting the source...)

Typically, clients certs are signed by a CA. To verify client certs, your
server needs to know the CA's cert beforehand; the server loads the CA
cert(s) via SSL_CTX_load_verify_locations.

The above error indicates your client is supplying a self-signed cert.

By definition, a self-signed cert's CA is itself. In this case, your server
is seeing the self-signed cert's CA (meaning the cert itself) for the first
time over the SSL connection and is thus unable to verify it.

Check out how to run a CA using OpenSSL; there are numerous HOWTOs, one of
which is here:

    http://www.post1.com/home/ngps/m2/

Create a CA, then try again with client certs signed by your CA.

<plug>
You might also want to check out M2Crypto, a Python interface to OpenSSL,
found at the same URL.
</plug>

HTH. 

-- 
Ng Pheng Siong <[EMAIL PROTECTED]> 

http://firewall.rulemaker.net  -+- Manage Your Firewall Rulebase Changes
http://www.post1.com/home/ngps -+- Open Source Python Crypto & SSL
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to