我有一个SVN系统,工作正常,最近升级后突然停止工作。我的设置:
我使用VisualSVN Server 2.7.4在Windows 2008服务器上托管了一个存储库。服务器使我能够随意生成自签名证书,根据需要输入我自己的主机名或其他数据。
我正在使用Eclipse(Kepler)在托管计算机和运行Mac OS X 10.9.1(Mavericks)的我自己的MacBookPro上进行Java编码。我有Eclipse的subclipse附加组件,它需要使用java HL进行subversion。
我已经安装了macport和subclipse请求的最新subversion / javahl包。 Eclipse / subversion接口似乎工作正常,但是存在Eclipse无法正常导航的命令行subversion错误。解决命令行错误是主要问题。
我之前通过macports安装了以下版本,事情似乎工作正常:
颠覆@ 1.8.5_1 +通用
subversion-javahlbindings @ 1.8.5_0 + no_bdb + universal
作为安装/排除不相关内容的一部分,我升级了所有安装了以下新版本的macport:
颠覆@ 1.8.8_0 +通用
subversion-javahlbindings @ 1.8.8_0 + no_bdb + universal
升级后,svn通过我的mac上的eclipse失败。我可以通过临时接受证书来强制它通过命令行。它在Windows 2008服务器计算机上仍然可以正常运行。
第一次更改证书后,我可以选择永久接受,但在执行此操作后,它会失败并退回到第二次“临时”对话。
$ svn update Updating '.': Error validating server certificate for 'https://192.168.100.59:443': - The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! - The certificate hostname does not match. Certificate information: - Hostname: 571458-tools1 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT - Issuer: - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC (R)eject, accept (t)emporarily or accept (p)ermanently? p Error validating server certificate for 'https://192.168.100.59:443': - The certificate has an unknown error. Certificate information: - Hostname: 571458-tools1 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT - Issuer: - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC (R)eject or accept (t)emporarily? t (credentials dialogue) At revision 46.
$ svn update Updating '.': Error validating server certificate for 'https://192.168.100.59:443': - The certificate hostname does not match. - The certificate has an unknown error. Certificate information: - Hostname: 571458-tools1 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT - Issuer: - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC (R)eject or accept (t)emporarily? t At revision 46.
多个网络搜索,包括此网站和其他网站,已将〜/ .subversion中的身份验证文件指向可能是问题,但所有建议的解决方案(删除,更改所有权和权限等)都未能解决问题
具体问题: 1.我无法弄清楚如何在macports中恢复到之前的subversion(1.8.5)以查看我更新的1.8.8版本中是否存在错误。 2.假设1.8.8中没有错误,我还有什么办法可以对此进行故障排除并永久接受我的证书吗?
编辑: - 通过将自签名证书主机名更改为数字IP,我已经能够摆脱“主机名”错误。但是,所有其他症状仍然存在,包括神秘的“证书有未知错误”。 - 我确信(尽管评论另有说明)1.8.8升级在Mac OS X上破坏了一些东西,我非常有兴趣回滚版本以进一步排除故障。但我想这是一个新问题......
答案 0 :(得分:7)
多么奇怪,一天前确实有类似的问题。 无论如何,我可能错了,但SVN在1.8.8的明显安全级别比以前的版本更严格。你强制接受哪些证书可能不再被新标准“接受”。我错了,但那是无关紧要的。
如果你看一下你提供的错误,你会看到:
证书主机名不匹配。
这是svn不会忽略的SSL错误,它意味着您要连接的是与您指定的主机名不同的主机名。问题是,虽然https://192.168.100.59:443
可能引用与存储库服务器相同的URL,例如:https://foobar.com:443
SSL握手将失败,因为主机名不匹配。
对于存储库URL的主机名与SVN服务器证书响应的主机名不匹配的任何情况,此问题仍然存在。
我暗示您通过VisualSVN证书生成工具使用自签名证书。要解决此问题,请重新生成新证书,并确保主机名与您的真实主机名匹配。这应该可以解决你的问题。
请注意:您仍然会收到第一个对话框,警告您正在使用未经验证/有效的证书,但您不应该获得第二个对话框。此外,确保客户端和服务器SVN版本相同,不同的SVN版本会造成严重破坏。
修改强>
抱歉,我向后看了这个错误,如果你想访问它,你的证书主机名显然应该是571458-tools1
。192.168.100.59
。遵循上述相同的证书重新生成步骤,但使用192.168.100.59
的主机名而不是571458-tools1
。
请注意,这将允许SSL / TLS连接仅在直接使用内部IP时才能工作。
答案 1 :(得分:1)
我能够通过以下链接找出如何恢复到subversion 1.8.5:
trac.macports.org/wiki/howto/InstallingOlderPort
恢复到1.8.5解决了问题。我将直接与subversion开发人员一起进一步解决1.8.8的问题。
答案 2 :(得分:1)
The certificate has an unknown error
可能是证书链问题。从Windows SVN 1.8.3升级到1.8.7后我遇到了这个问题。您可以通过运行以下命令来查找:echo | openssl s_client -connect host:443
e.g。
Certificate chain
0 s:/[redacted]/
i:/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
这里的错误是1的主题与0的发行者不匹配。修复服务器上的证书链。