J'ai remarqué que le svn cli ne parvient pas à valider les certificats https et demande toujours une validation manuelle à l'aide de l'empreinte du certificat:
mbp:~ user$ svn co https://svn.mysite.com/svn/testrepo
Error validating server certificate for 'https://svn.mysite.com:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.mysite.com
- Valid: from Fri, 21 Jun 2013 00:00:00 GMT until Mon, 20 Jun 2016 23:59:59 GMT
- Issuer: ANISSUER, DE
- Fingerprint: 37:7d:6a:a7:e9:4c:30:57:fe:45:32:ab:bb:71:6c:79:08:4d:72:0d
Tous les clients suivants ont pu valider le certificat de mon propre serveur svn ainsi que celui d'un serveur sf.net :
- svn cli sous Linux
- TortoiseSVN sur Windows
- Safari / Firefox / Chrome sur OSX
Les deux versions de svn cli que j'ai essayées sur OSX (Mountain Lion) et que je n'ai pas pu valider les certificats sont les suivantes:
/usr/bin/svn
: 1.6.18 (r1303927) - Lion de montagne / Xcode/opt/homebrew/bin/svn
: 1.7.9 (r1462340) - Compilé avec homebrew
Y a-t-il un moyen de contourner ce problème?
/etc/ssl/certs
Debian, mais je n'ai aucune idée de leur localisation dans OSX.Réponses:
Un ami (qui était trop paresseux pour écrire la réponse ici) m'a laissé entendre que les certificats racine sous Mac OSX sont stockés dans le trousseau et a suggéré deux façons différentes de résoudre le problème.
Afin de créer la bibliothèque openssl (utilisée par svn) pour les localiser, vous devez les exporter manuellement et les stocker
/System/Library/OpenSSL/cert.pm
. Le processus est décrit étape par étape dans l'article de blog suivant: http://jw35.blogspot.gr/2011/02/root-certificates-for-macos-openssl.htmlSi vous utilisez homebrew , une autre solution consiste à installer
curl-ca-bundle
package et pointer openssl sur l'emplacement des certificats à l'aide d'une variable d'environnement.la source
/System/Library/OpenSSL/cert.pm
mais vous devez également créer un fichier appelé[hash].0
contenant les mêmes données (ou, mieux encore, créer un lien symbolique). Le[hash]
est le hachage du certificat que vous pouvez obtenir en exécutantopenssl x509 -hash -noout -in /System/Library/OpenSSL/cert.pem
. Cela devrait vous donner un code de 8 caractères que vous pouvez utiliser pour le nom de fichier de votre lien symbolique (par exemple238dba32.0
, où le.0
est ajouté à la table de hachage pour créer le nom de fichier final).