2010-10-14 19 views
2

我試圖登錄到顛覆,我已經永久存儲的證書,但我不斷收到此錯誤:當我嘗試從Perl登錄到Subversion時,爲什麼會得到「發行者不可信」?

RA layer request failed: PROPFIND request failed on '/svn/QFlife/Projects%20DotNet/QFX/trunk/Clients' : PROPFIND of '/svn/QFlife/Projects%20DotNet/QFX/trunk/Clients' : Server certificate verification failed: issuer is not trusted (https://vc.flife.de) at list.pl l

這是代碼,這是負責身份驗證:

sub getauth 
{ 
    my $cred = shift; 
    $cred->username($user); 
    $cred->password($passwd); 
} 


my $ctx = SVN::Client->new 
(
    auth =>  [ SVN::Client::get_simple_provider(), 
       SVN::Client::get_simple_prompt_provider 
       (
        \&getauth,2 
       ), 
       SVN::Client::get_username_provider() 
      ], 
); 

有人能給我一個線索我做錯了什麼?

+1

是'$ user'和'getauth'的上下文中定義'$ passwd' ?他們有效嗎? – Axeman 2010-10-14 15:48:04

+0

是的,這些變量是有效的。 – 2010-10-15 07:09:24

回答

1

您正在使用https連接,這意味着在建立連接時,服務器會將其證書發送到客戶端。客戶端將檢查證書是否有效,即:證書的公用名稱和服務器URL匹配,並且證書由可信機構頒發。根據你的消息,這是問題所在。

因此,解決方案可以是:

  1. 發行人的證書添加到信任的發行人基礎
  2. 配置perl的SVN庫忽略證書問題。
0

如果你永久添加的證書,加入ssl_server_trust_file_provider到您的權威性名單應該這樣做:

my $ctx = SVN::Client->new(
    auth => [ SVN::Client::get_simple_provider(), 
       SVN::Client::get_simple_prompt_provider(\&getauth,2), 
       SVN::Client::get_username_provider(), 
       SVN::Client::get_ssl_server_trust_file_provider() 
      ], 
); 
相關問題