简体   繁体   English

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

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

I had a SVN system up and working just fine, and after a recent upgrade suddenly stopped working. 我有一个SVN系统,工作得很好,最近升级后突然停止工作。 My setup: 我的设置:

  • I have a repository hosted on a Windows 2008 server using VisualSVN Server 2.7.4. 我使用VisualSVN Server 2.7.4在Windows 2008服务器上托管了一个存储库。 The server offers me the ability to generate self-signed certificates at will, entering my own hostname or other data as desired. 服务器使我能够随意生成自签名证书,根据需要输入我自己的主机名或其他数据。

  • I am using Eclipse (Kepler) for java coding on both the hosted machine and my own MacBookPro running Mac OS X 10.9.1 (Mavericks). 我在托管计算机和运行Mac OS X 10.9.1(Mavericks)的我自己的MacBookPro上使用Eclipse(Kepler)进行java编码。 I have the subclipse add-on to Eclipse which requires subversion with java HL. 我有Eclipse的subclipse附加组件,它需要使用java HL进行subversion。

  • I have installed macports and the latest subversion/javahl packages requested by subclipse. 我已经安装了macport和subclipse请求的最新subversion / javahl包。 The Eclipse/subversion interface seems to be working fine, but there are command-line subversion errors which Eclipse isn't navigating well. Eclipse / subversion接口似乎工作正常,但是存在Eclipse无法正常导航的命令行subversion错误。 Solving the command-line errors is the main issue. 解决命令行错误是主要问题。

  • I previously had the following versions installed via macports, and things seemed to be working fine: 我之前通过macports安装了以下版本,事情似乎工作得很好:

    subversion @1.8.5_1+universal 颠覆@ 1.8.5_1 +普遍
    subversion-javahlbindings @1.8.5_0+no_bdb+universal subversion-javahlbindings @ 1.8.5_0 + no_bdb + universal

  • As part of installing/troubleshooting something unrelated, I upgraded all my macports, which installed the following new versions: 作为安装/故障排除不相关内容的一部分,我升级了所有安装了以下新版本的macport:

    subversion @1.8.8_0+universal 颠覆@ 1.8.8_0 +普遍
    subversion-javahlbindings @1.8.8_0+no_bdb+universal subversion-javahlbindings @ 1.8.8_0 + no_bdb + universal

  • After the upgrade, svn via eclipse on my mac fails. 升级后,svn通过我的mac上的eclipse失败。 I can force it via the commandline by temporarily accepting a certificate. 我可以通过临时接受证书来强制它通过命令行。 It still works completely fine on the Windows 2008 server machine. 它在Windows 2008服务器计算机上仍然可以正常运行。

The first time following a certificate change I get the option to accept permanently, but after doing this, it fails and falls back to a second "temporary" dialogue. 在证书更改后第一次我得到永久接受的选项,但在这样做之后,它失败并回到第二次“临时”对话。

 $ 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. 
  • Following this, future attempts still result in the error and requirement to temporarily accept: 在此之后,未来的尝试仍然会导致错误并要求暂时接受:
 $ 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. 

Multiple web searches, including this site and others, have pointed to the authentication files in ~/.subversion as potentially the problem, but all the proposed solutions (deleting, changing ownership and permissions, etc.) have failed to solve the problem. 多个Web搜索(包括此站点和其他站点)已将〜/ .subversion中的身份验证文件指向可能是问题,但所有建议的解决方案(删除,更改所有权和权限等)都无法解决问题。

Specific questions: 1. I can't figure out how to revert to the previous subversion (1.8.5) in macports to see if there was a bug in the 1.8.8 version I updated to. 具体问题:1。我无法弄清楚如何在macports中恢复到之前的subversion(1.8.5),看看我更新的1.8.8版本中是否存在错误。 2. Assuming there's no bug in 1.8.8, is there anything else I can do to potentially troubleshoot this and get my certificates permanently accepted? 2.假设1.8.8中没有错误,我还有什么办法可以对此进行故障排除并永久接受我的证书吗?

EDIT: - I've been able to get rid of the "hostname" error by changing my self-signed certificate hostname to the numeric IP. 编辑: - 通过将我的自签名证书主机名更改为数字IP,我已经能够摆脱“主机名”错误。 However, all other symptoms remain, including the mysterious "The certificate has an unknown error." 但是,所有其他症状仍然存在,包括神秘的“证书有未知错误”。 - I'm convinced (though comments indicate otherwise) that the 1.8.8 upgrade broke something on Mac OS X and am very interested in rolling back versions to troubleshoot further. - 我确信(尽管评论另有说明)1.8.8升级在Mac OS X上破坏了一些东西,我非常有兴趣回滚版本以进一步排除故障。 But I suppose that's a new question... 但我想这是一个新问题......

How strange, literally had a similar issue a day ago. 多么奇怪,一天前确实有类似的问题。 Anyway, I may be wrong but the apparent security level for SVN at 1.8.8 is tighter than previous versions. 无论如何,我可能错了,但SVN在1.8.8的明显安全级别比以前的版本更严格。 What certificates that you forced svn to accept may no longer be "acceptable" by the new standards. 你强制接受哪些证书可能不再被新标准“接受”。 I was wrong, but that's irrelevant. 我错了,但这无关紧要。

If you look at the error you provided you will see: 如果你看一下你提供的错误,你会看到:

The certificate hostname does not match. 证书主机名不匹配。

This is a SSL error that svn will not ignore, it implies that you are connecting to a different hostname than what you specified. 这是svn不会忽略的SSL错误,它意味着您连接的是不同于您指定的主机名。 The thing is, whilst https://192.168.100.59:443 might refer to the same URL as your repository server at, for example: https://foobar.com:443 the SSL handshake will fail as the hostnames don't match. 问题是,虽然https://192.168.100.59:443可能引用与您的存储库服务器相同的URL,例如: https://foobar.com:443https://foobar.com:443https://foobar.com:443 SSL握手将失败,因为主机名不匹配。

This issue persists for any case where your repository URL's hostname does not match that responded by the SVN server's certificate. 对于存储库URL的主机名与SVN服务器证书响应的主机名不匹配的任何情况,此问题仍然存在。

I imply you are using a self-signed certificate via the VisualSVN certificate generation tool. 我暗示您通过VisualSVN证书生成工具使用自签名证书。 To solve, regenerate a new certificate and make sure the hostname matches that of your real hostname . 要解决此问题,请重新生成新证书并确保主机名与您的真实主机名匹配 That should fix your issues. 这应该可以解决你的问题。

Please note: You're still gonna get that first dialog box with warning that you're using a certificate thats not verified/valid but you shouldn't get that second dialog. 请注意:您仍然会收到第一个对话框,警告您正在使用未经验证/有效的证书,但您不应该获得第二个对话框。 Also, make sure both client and server SVN versions are the same, differing SVN versions cause great havoc. 此外,确保客户端和服务器SVN版本相同,不同的SVN版本会造成严重破坏。

Edit: 编辑:

Sorry, I read the error backwards, your certificate hostname is apparently 571458-tools1 when it should be 192.168.100.59 if you want to access it. 对不起,我向后看了错误,你的证书主机名显然是571458-tools1 ,如果你想访问它,应该是192.168.100.59 Follow the same certificate regeneration steps above but use the hostname of 192.168.100.59 instead of 571458-tools1 . 遵循上面相同的证书重新生成步骤,但使用主机名192.168.100.59而不是571458-tools1

Please note that this will then allow SSL/TLS connections to work only when using the internal IP directly. 请注意,这将允许SSL / TLS连接仅在直接使用内部IP时才起作用。

I was able to figure out how to revert to subversion 1.8.5 via this link: 我能够通过这个链接弄清楚如何恢复到subversion 1.8.5:

trac.macports.org/wiki/howto/InstallingOlderPort trac.macports.org/wiki/howto/InstallingOlderPort

Reverting to 1.8.5 resolved the problem. 恢复到1.8.5解决了问题。 I'll pursue further troubleshooting of what's up with 1.8.8 directly with subversion developers. 我将直接与subversion开发人员一起进一步解决1.8.8的问题。

The certificate has an unknown error could be a certificate chain problem. The certificate has an unknown error可能是证书链问题。 I encountered this after upgrading from Windows SVN 1.8.3 to 1.8.7. 从Windows SVN 1.8.3升级到1.8.7后我遇到了这个问题。 You can look for this by running this command: echo | openssl s_client -connect host:443 您可以通过运行以下命令来查找: echo | openssl s_client -connect host:443 echo | openssl s_client -connect host:443

eg 例如

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

The error here is that 1's subject does not match 0's issuer. 这里的错误是1的主题与0的发行者不匹配。 Fix the certificate chain on the server. 修复服务器上的证书链。

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

相关问题 服务器证书验证失败 - Server certificate verification failed Jenkins:服务器 SSL 证书验证失败 - 发行者不受信任 - Jenkins: Server SSL certificate verification failed - issuer is not trusted Cruise Control异常:服务器SSL证书验证失败:为其他主机名颁发的证书,不信任颁发者 - Cruise Control Exception : Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted svn:E230001:服务器 SSL 证书验证失败:颁发者不受信任 - svn: E230001: Server SSL certificate verification failed: issuer is not trusted 使用SVN存储库设置ReviewBoard时,服务器SSL证书验证失败 - Server SSL certificate verification failed when setting up ReviewBoard with a SVN repo 服务器证书验证失败:颁发者不受信任 - Server certificate verification failed: issuer is not trusted 在Subversion中绕过SSL证书验证 - bypass ssl certificate validation in subversion 无法发布mvn:准备,服务器证书验证失败 - Unable to mvn release:prepare, server certificate has failed verification 如何使用 Subversion 信任过期的 SSL 证书? - How to trust an expired SSL certificate with Subversion? svn命令行错误“服务器证书验证失败:发行者不受信任”我如何解决此错误? - svn command line error “Server certificate verification failed: issuer is not trusted” how can i resolve this error?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM