繁体   English   中英

Subversion服务器SSL证书验证失败:和其他原因

[英]Subversion Server SSL certificate verification failed: and other reason(s)

我有一个SVN系统,工作得很好,最近升级后突然停止工作。 我的设置:

  • 我使用VisualSVN Server 2.7.4在Windows 2008服务器上托管了一个存储库。 服务器使我能够随意生成自签名证书,根据需要输入我自己的主机名或其他数据。

  • 我在托管计算机和运行Mac OS X 10.9.1(Mavericks)的我自己的MacBookPro上使用Eclipse(Kepler)进行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. 

多个Web搜索(包括此站点和其他站点)已将〜/ .subversion中的身份验证文件指向可能是问题,但所有建议的解决方案(删除,更改所有权和权限等)都无法解决问题。

具体问题:1。我无法弄清楚如何在macports中恢复到之前的subversion(1.8.5),看看我更新的1.8.8版本中是否存在错误。 2.假设1.8.8中没有错误,我还有什么办法可以对此进行故障排除并永久接受我的证书吗?

编辑: - 通过将我的自签名证书主机名更改为数字IP,我已经能够摆脱“主机名”错误。 但是,所有其他症状仍然存在,包括神秘的“证书有未知错误”。 - 我确信(尽管评论另有说明)1.8.8升级在Mac OS X上破坏了一些东西,我非常有兴趣回滚版本以进一步排除故障。 但我想这是一个新问题......

多么奇怪,一天前确实有类似的问题。 无论如何,我可能错了,但SVN在1.8.8的明显安全级别比以前的版本更严格。 你强制接受哪些证书可能不再被新标准“接受”。 我错了,但这无关紧要。

如果你看一下你提供的错误,你会看到:

证书主机名不匹配。

这是svn不会忽略的SSL错误,它意味着您连接的是不同于您指定的主机名。 问题是,虽然https://192.168.100.59:443可能引用与您的存储库服务器相同的URL,例如: https://foobar.com:443https://foobar.com:443https://foobar.com:443 SSL握手将失败,因为主机名不匹配。

对于存储库URL的主机名与SVN服务器证书响应的主机名不匹配的任何情况,此问题仍然存在。

我暗示您通过VisualSVN证书生成工具使用自签名证书。 要解决此问题,请重新生成新证书并确保主机名与您的真实主机名匹配 这应该可以解决你的问题。

请注意:您仍然会收到第一个对话框,警告您正在使用未经验证/有效的证书,但您不应该获得第二个对话框。 此外,确保客户端和服务器SVN版本相同,不同的SVN版本会造成严重破坏。

编辑:

对不起,我向后看了错误,你的证书主机名显然是571458-tools1 ,如果你想访问它,应该是192.168.100.59 遵循上面相同的证书重新生成步骤,但使用主机名192.168.100.59而不是571458-tools1

请注意,这将允许SSL / TLS连接仅在直接使用内部IP时才起作用。

我能够通过这个链接弄清楚如何恢复到subversion 1.8.5:

trac.macports.org/wiki/howto/InstallingOlderPort

恢复到1.8.5解决了问题。 我将直接与subversion开发人员一起进一步解决1.8.8的问题。

The certificate has an unknown error可能是证书链问题。 从Windows SVN 1.8.3升级到1.8.7后我遇到了这个问题。 您可以通过运行以下命令来查找: echo | openssl s_client -connect host:443 echo | openssl s_client -connect host:443

例如

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的发行者不匹配。 修复服务器上的证书链。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM