Chr*_* C. 2 ssl debian svn apache-2.4
将 Debian 服务器从稳定升级到测试后,svn 客户端无法再连接到 subversion 服务器。
我们的 svn 客户端需要使用客户端证书进行连接,并且 subversion 服务器托管在 Apache 下。Subversion 从 1.6.17 升级到 1.7.13。Apache2 从 2.2.22 升级到 2.4.6。
svn 客户端在更新时收到以下错误信息:
Updating '.':
svn: E175002: Unable to connect to a repository at URL 'https://myserver/svn/myproject/dev/trunk'
svn: E175002: OPTIONS of 'https://myserver/svn/myproject/dev/trunk': SSL handshake failed: SSL error: An unexpected TLS packet was received. (https://myserver)
Run Code Online (Sandbox Code Playgroud)
在Apache服务器上,只出现一条消息,它在other_vhosts_access.log中:
myserver.localdomain:80 127.0.0.1 - - [06/Jan/2014:19:02:57 -0500] "\x16\x03" 400 0 "-" "-"
Run Code Online (Sandbox Code Playgroud)
下面是 subversion 虚拟目录的配置:
<VirtualHost *:443>
ServerName myservername
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/myservercert.crt
SSLCertificateKeyFile /etc/apache2/ssl/myservercert.key
SSLCACertificateFile /etc/apache2/ssl/myserver-CA.crt
SSLVerifyClient require
SSLVerifyDepth 10
<Location /svn >
SSLRequireSSL
SSLRequire %{SSL_CLIENT_S_DN_C} eq "XX" and %{SSL_CLIENT_S_DN_ST} eq "XX" and %{SSL_CLIENT_S_DN_O} eq "XX" and %{SSL_CLIENT_S_DN_OU} eq "XX"
DAV svn
SVNParentPath /root/subversion/root
Require valid-user
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /root/subversion/.apache-htpasswd
AuthzSVNAccessFile /root/subversion/.apache-auth
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我解决这个问题的正确方向吗?谢谢。
将 Apache 从 2.2 升级到 2.4 时,启用站点下的文件链接必须以 .conf 结尾,而在过去它们不需要特定的文件扩展名。
如果您在sites-available 下的站点配置文件名没有扩展名.conf,那么您可能需要重命名它,然后运行:a2ensite filename 将其添加到sites-enabled。
例如,如果您的站点配置文件名为 MySite:
cd /etc/apache2
rm sites-enabled/MySite
cd sites-available
mv MySite MySite.conf
a2ensite MySite
apache2ctl configtest
apache2ctl restart
Run Code Online (Sandbox Code Playgroud)
所以,上面的问题是由于我的站点配置在 Apache2 服务启动时没有被选中。
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |