我试图让Xcode 4与我的svn存储库一起工作。我输入svn地址,它说是可以访问的,但是当我尝试检出时,它会出现“服务器'svn.testbedapp.com'需要客户端证书。” (它没有提供提供证书的选项),然后它显示“使用固定轮无限期地检出'ProjectName'。
我是如何提供证书或让它检查出来的?
答案 0 :(得分:12)
这是一个众所周知的问题。
打开终端,输入
svn ls <your repository address>
确认证书,检查登录/通过。 之后repo在xcode中工作正常。
答案 1 :(得分:1)
您可以将证书文件名放入SVN配置文件
~/.subversion/servers
在 [global] 部分中添加一行(使用完整路径 - 不是相对路径)
ssl-client-cert-file = /path/to/your/certificate.p12
您也可以选择添加
ssl-client-cert-password = yourpassphrase
store-passwords = yes
store-ssl-client-cert-pp = yes**
答案 2 :(得分:0)
回答原来的问题:
翻译:Xcode无法在您的钥匙串中找到SSL客户端证书,证书无效,或者如果有多个证书,Xcode不知道使用哪一个。
在钥匙串中安装证书:在Finder中,打开包含客户端证书的文件(通常为.p12文件)。单击“添加”,然后输入密码以解密.p12文件。如果您有相应的根证书(通常是.pem文件),也可以将其导入,并在出现提示时单击“始终信任”。
要确保证书有效:在Keychain Access中,选择客户端证书并查找绿色复选标记和“此证书有效”字样。
要将网址与特定证书相关联:您需要一个身份首选项。 Xcode无法做到这一点,但Keychain Access和Safari都可以。在Keychain Access中,选择客户端证书,然后选择“文件”菜单&gt;新身份偏好......输入存储库URL(例如https://foo.example.com/path/to/repository
),然后单击“添加”。
或者:在Safari中,转到您的存储库URL。如果安装了多个证书,Safari将提示“网站”foo.example.com“需要客户端证书”并显示证书列表。选择您在步骤(1)中安装的那个。
要使一切正常,您还需要克服这两个常见错误:
https://foo.example.com:443
翻译:Subversion无法在磁盘上找到您的SSL客户端证书。
Xcode使用Keychain,Subversion本身(从v1.4开始)也使用Keychain进行密码。但是,对于证书,必须将Subversion指向磁盘上的文件。
1)在您喜欢的文本编辑器中打开~/.subversion/servers
。在底部,添加行
ssl-client-cert-file = /path/to/first.last.p12
其中值是PKCS#12格式的客户端证书的路径。
https://foo.example.com/path/to/repository
”的选项:SSL握手失败,请求了客户端证书:SSL错误:sslv3警报握手失败翻译:Subversion无法找到解密SSL客户端证书的密码。
见上面的解释。
要在钥匙串中保存.p12密码:在终端中,输入
svn ls https://foo.example.com/path/to/repository
此时,您应该会在终端中看到存储库的内容。
注意:如果您使用Black Pixel版本,至少v1.2.2似乎无法使用Keychain进行密码,因此在~/.subversion/servers
中您还需要添加该行
ssl-client-cert-password = yourpassword
您的密码是明文。 (这显然不安全,所以除非必须这样做,否则不要这样做。)