web-dev-qa-db-ja.com

自己署名SSL証明書を使用してSVNコマンドを実行する

次のコマンドを実行しています。

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

残念ながら、次のエラーが発生します。

?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)

--non-interactive --trust-server-certを入力すると、自己署名証明書の問題は無視されると思いました。私はここで何か間違ったことをしていますか?

2
Justin

ホスト名が一致しません。正しいホスト名で証明書を再発行してください。

Svn cmdの可能性の1つは、-trust-server-certがすべてのCAを信頼することですが、それでも有効なホスト名をチェックし、証明書の有効期限が切れているかどうかを確認します。

したがって、正しいホスト名を使用して問題を解決してください。

そして、はい、これは意味がありません:-)

Svnメーリングリストの詳細については、 ここ を参照してください。

5
Peter Parker

次のphpコードを実行して、証明書を受け入れます。これは、コマンドラインを使用して手動で行う場合と非常によく似ています(証明書を永続的に受け入れるには、「p」を押します)。

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

一度実行してください、証明書。受け入れられ、今-いつものように実行します '(もうecho pは必要ありません)

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

最後の2>&1に注意してください。私も追加することをお勧めします。このようにして、エラー出力を確認できます(ある場合)。

クレジットは Subversion-when-trust-server-cert-isnt-enough

2
user168291