上一篇 已经介绍了通过 http 方式访问的svn搭建,本篇 在上一篇的基础上进一步介绍如何配置 https 方式的访问。
1、通过上面的配置,SVN服务器通过HTTP访问基本就没有问题了,接着配置HTTPS访问
[root@Hui ~]# cd /etc/pki/tls/private
[root@Hui private]# openssl genrsa -out my.key 1024
[root@Hui private]# openssl req -new -key my.key -out my.csr
[root@Hui private]# cd /etc/pki/tls/certs
[root@Hui certs]# openssl x509 -req -days 365 -in /etc/pki/tls/private/my.csr -signkey /etc/pki/tls/private/my.key -out my.crt
以上步骤应该会在相关文件夹下产生所需的文件(my.key、my.csr、my.crt等),保证产生文件所在文件夹正确,否则后面将可能发生错误
2、修改/etc/httpd/conf.d/ssl.conf文件
[root@Hui certs]# vi /etc/httpd/conf.d/ssl.conf
修改为以下内容
SSLCertificateFile /etc/pki/tls/certs/my.crt
SSLCertificateKeyFile /etc/pki/tls/private/my.key
3、修改/etc/httpd/conf/httpd.conf文件
[root@Hui certs]# vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
SSLRequireSSL //添加此行
</Directory>
4、重启httpd
[root@Hui certs]# service httpd restart
如此SVN就只可以通过HTTPS访问了。
--------------------------------- 可能遇到的问题 -----------------------------------
1.SVN开启HTTPS加密后,所有的WEB访问都变成HTTPS,例如,localhost将无法访问,需要访问https://localhost,这个应该是可以在https.conf文件中配置区分的,暂时不做处理,故建议此服务器不再当作WEB服务器。
localhost需要https的解决方法
不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf
<pre name="code" class="plain"><Location /svn>
DAV svn
SVNPath /code/svndata/svn
AuthzSVNAccessFile /code/svndata/svn/conf/authz
AuthType Basic
AuthName "Welcome to SVN"
AuthUserFile /code/svndata/svn/passwd
Require valid-user
SSLRequireSSL //需要https加密访问
</Location>
这样,只有/svn目录需要https加密访问,不影响httpd做web服务器。