2010-11-03 5 views
1

Lorsque vous exécutez svn contre notre serveur svn Je reçois cette erreur (nom de domaine et d'empreintes digitales édité):svn n'acceptera pas le certificat, si s_client ne

Error validating server certificate for 'https://svn.example.org:443': 
    - The certificate has expired. 
    - The certificate has an unknown error. 
Certificate information: 
    - Hostname: mail.example.org 
    - Valid: from Fri, 24 Sep 2010 13:05:10 GMT until Wed, 09 Feb 2011 
15:24:52 GMT 
    - Issuer: 07969287, http://certificates.godaddy.com/repository, 
GoDaddy.com, Inc., Scottsdale, Arizona, US 
    - Fingerprint: 00:e5:.... 
(R)eject or accept (t)emporarily? t 

donc une erreur dit qu'il est arrivé à expiration, et quelques lignes plus tard, il dit que la date d'expiration est 2011. Et puis il y a une erreur inconnue. C'est svn 1.6 - les anciennes versions avaient une option d'acceptation permanente.

J'ai aussi essayé de courir openssl s_client pour vérifier le certificat:

openssl s_client -host svn.example.org -port 443 -verify 5 -CApath /etc/ssl/certs 

Et entre autres sortie I get:

New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA 
Server public key is 2048 bit 
Secure Renegotiation IS supported 
Compression: zlib compression 
Expansion: zlib compression 
SSL-Session: 
    Protocol : TLSv1 
    Cipher : DHE-RSA-AES256-SHA 
    Session-ID: 7604... 
    Session-ID-ctx: 
    Master-Key: 22AB... 
    Key-Arg : None 
    Compression: 1 (zlib compression) 
    Start Time: 1288804434 
    Timeout : 300 (sec) 
    Verify return code: 0 (ok) 

Ce qui suggère que le protocole SSL est correctement configuré. La seule chose que je peux penser est que nous utilisons un certificat multi-domaine, avec mail.example.org étant le sujet CN et svn.example.org étant répertoriés dans la section subjectAltName.

Cela affecte un certain nombre de personnes, et je ne veux pas que nos clients doivent faire face à cela, donc j'aimerais vraiment une solution qui fait disparaître cette erreur plutôt que de la réparer pour moi. Toute aide appréciée.

Modifier: Je peux charger https://svn.example.org/ dans mon navigateur web et il ne se plaint pas. Je peux voir la hiérarchie des certificats via le navigateur Web et aucun des certificats de la chaîne n'a expiré.

J'ai vérifié ldd svn comme suggéré par Bruno, et il est lié à libgnutls, tandis que openssl est lié à libssl. Y a-t-il un équivalent à la commande s_client utilisant libgnutls?

Éditer2: (donc c'est facile à trouver pour les personnes plus tard). svn utilise la bibliothèque gnutls plutôt que la bibliothèque ssl, et gnutls est plus stricte que ssl. Donc, pour voir l'erreur, vous devez utiliser gnutls-cli. Dans mon cas, gnutls didn't like the order of certificates, même s'ils sont tous là. Voir le lien avant pour plus de détails.

Répondre

1

Je ne sais pas si cela va résoudre votre problème, mais il y a une option ssl-authority-files que vous pouvez configurer dans (vous pouvez le limiter à certains hôtes si vous voulez, je pense). En outre, il est possible que votre version de svn soit liée à une autre bibliothèque que OpenSSL pour sa pile SSL/TLS, par exemple GnuTLS (cela doit être visible en utilisant ldd sur le binaire svn).

(Avez-vous vérifié si le certificat de CA a expiré, plutôt que le certificat de serveur lui-même?)

+0

Merci pour avoir l'info. J'ai ajouté plus d'informations dans la question. Cela affecte quelques personnes, donc je cherche quelque chose qui va le réparer sans que tout le monde doive éditer leur config. Bien que ce soit une sauvegarde utile si rien d'autre ne fonctionne. –

+0

Avez-vous changé l'option de configuration 'ssl-authority-files'? Il n'y a pas de raison pour que 'svn' ait le même ensemble de certificats de confiance que votre navigateur par défaut, ce qui peut expliquer pourquoi cela fonctionne dans le navigateur et pas dans svn. – Bruno

+0

Ah, je me suis approché - j'ai trouvé le client 'gnutls-cli'. Cela se plaint de la même manière que 'svn'. Il semble que ce soit quelque chose à voir avec [l'ordre des certificats] (http://www.mail-archive.com/[email protected]/msg01213.html).Je vais voir si je peux résoudre ce problème, et sinon je serai parti pour serverfault ... –

Questions connexes