Noté que el svn cli no puede validar los certificados https y siempre solicita la validación manual usando la huella digital del certificado:
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
Todos los siguientes clientes pudieron validar el certificado de mi propio servidor svn, así como el de un servidor sf.net :
Las dos versiones de svn cli que probé en OSX (Mountain Lion) y no pude validar los certificados son:
/usr/bin/svn
: 1.6.18 (r1303927) - León de montaña/Xcode/opt/homebrew/bin/svn
: 1.7.9 (r1462340) - Compilado usando homebrew¿Hay alguna forma de evitar este problema?
Un amigo (que fue demasiado perezoso para escribir la respuesta aquí) me insinuó que los certificados raíz en Mac OSX están almacenados en el llavero y sugirió dos formas diferentes de solucionar el problema.
Para crear una biblioteca de openssl (utilizada por svn) para ubicarlos, debe exportarlos manualmente y almacenarlos en formato /System/Library/OpenSSL/cert.pm
. El proceso se describe paso a paso en la siguiente publicación de blog: http://jw35.blogspot.gr/2011/02/root-certificates-for-macos-openssl.html
Si está utilizando homebrew , una solución alternativa es instalar curl-ca-bundle
el paquete y apuntar a openssl a la ubicación de los certificados con el uso de una variable de entorno.
brew install curl-ca-bundle
echo "export SSL_CERT_FILE=$(brew --prefix)/opt/curl-ca-bundle/share/ca-bundle.crt" >> ~/.bashrc
/System/Library/OpenSSL/cert.pm
sino que también debe crear un archivo llamado [hash].0
que contenga los mismos datos (o, mejor aún, crear un enlace simbólico). El [hash]
es el hash del certificado que puede obtener ejecutando openssl x509 -hash -noout -in /System/Library/OpenSSL/cert.pem
. Esto debería darle un código de 8 caracteres que puede usar para el nombre de archivo de sus enlaces simbólicos (por ejemplo 238dba32.0
, donde se .0
agrega al hash para crear el nombre de archivo final).
m000
/etc/ssl/certs
Debian, pero no tengo idea de su paradero en OSX.