[Help-gnutls] Peer certificates not signed by any CA

Florian Weimer fweimer at bfk.de
Tue Jun 13 14:51:34 CEST 2006


On Tue, Jun 13, 2006 at 12:10:32PM +0200, Nikos Mavrogiannopoulos wrote:

> >the client tells the server which certificate it is going to send (so
> >that the server can look it up in a database and tell GNUTLS it is
> >trusted).  However, I'd like to avoid this.

> Why do that in an outer protocol?

Because the server is pre-warned and can feed the expected certificate
to GNUTLS.

> From the server side you can access the actual certificate that the
> client had sent, thus you can look it up in a database (say by using
> the sha-1 of the certificate or even something simpler).

Well, according to my experiments, this doesn't work. 8-( Good to know
that it should, though.

> >After that, the peer certificate list is empty, even though the client
> 
> Probably it is empty because the client didn't send any certificate.

Indeed, gnutls_certificate_client_get_request_status returns 0 on the
client side.  But if I comment out the set_x509_key_mem call (see
below), the test case with set_x509_trust_mem on the server side begins
to fail.  Therefore, I assume that a client certificate is actually
sent to the server.

> How do you set up the client side? If you use the default functions
> most probably the certificate will not be sent if the server doesn't send
> in his certificate request message a list of acceptable CAs (at least
> one CA must have signed that certificate).

    my $cred = new Crypt::GNUTLS::CertificateCredentials;
    $cred->set_x509_key_mem($client_cert, $client_key, GNUTLS_X509_FMT_PEM);
    $cred->set_x509_trust_mem($server_cert, GNUTLS_X509_FMT_PEM);
    my $session = new_client Crypt::GNUTLS::Session;
    $session->set_default_priority;
    $session->kx_set_priority(qw/RSA/);
    $cred->set($session);

> In that case if you would like to send the client certificate anyway,
> you should use the callback function (don't remember the name right
> now).

Will try and report.  But it's rather strange that I see a certificate
on the server side even if the client doesn't send one. 8-/ Smells like
a bug.

-- 
Florian Weimer                <fweimer at bfk.de>
BFK edv-consulting GmbH       http://www.bfk.de/
Durlacher Allee 47            tel: +49-721-96201-1
D-76131 Karlsruhe             fax: +49-721-96201-99





More information about the Gnutls-help mailing list