Execute comandos SVN com certificado SSL autoassinado

2

Estou executando o seguinte comando:

svn info --non-interactive --trust-server-cert --no-auth-cache --xml "https://ommited/svn/YAMS"

Infelizmente, estou recebendo o seguinte erro:

?xml version="1.0" encoding="UTF-8"?>
<info>
svn: E175002: Unable to connect to a repository at URL 'https://ommited/svn/YAMS'
svn: E175002: OPTIONS of 'https://ommited/svn/YAMS': Server certificat
e verification failed: certificate issued for a different hostname, issuer is no
t trusted (https://ommited)

Eu pensei que se eu colocasse --non-interactive --trust-server-cert , ele ignoraria o problema do certificado autoassinado. Estou fazendo algo errado aqui?

    
por Justin 19.06.2012 / 13:52

2 respostas

5

Seu nome de host não corresponde. Emita novamente seu certificado com o nome de host correto.

Uma das probabilidades em svn cmd é que - trust-server-cert confia em qualquer autoridade de certificação, no entanto, ela ainda verifica se há um nome de host válido e se o certificado expirou.

Portanto, use o hostname correto para resolver seu problema.

E sim, isso não faz sentido: -)

Veja aqui para mais informações em svn mailinglist

    
por 19.06.2012 / 18:24
2

execute o seguinte código php, para aceitar o certificado, da mesma forma que quando você faz manualmente, usando a linha de comando (onde você pressiona 'p' para aceitar o certificado permanentemente):

<?php
header('Content-Type: text/plain; charset=UTF-8');
print( shell_exec('echo p | svn log --limit 4 c:/work/trunk  2>&1') );
?>

execute uma vez, o certificado. será aceito, e agora - execute "como de costume" (não precisa mais de echo p )

<?php
header('Content-Type: text/plain; charset=UTF-8');
print( shell_exec('svn log --limit 4 c:/work/trunk  2>&1') );
?>

Observe o 2>&1 no final. Eu recomendo adicioná-lo também. Desta forma, você pode ver o erro de saída (se tiver algum).

o crédito vai para subversion-when-trust-server-cert- não é suficiente

    
por 06.04.2013 / 16:13