天天看點

Centos安裝apache+svn結合的SVN伺服器 (二)

上一篇 已經介紹了通過 http 方式通路的svn搭建,本篇 在上一篇的基礎上進一步介紹如何配置 https 方式的通路。

1、通過上面的配置,SVN伺服器通過HTTP通路基本就沒有問題了,接着配置HTTPS通路

[[email protected] ~]# cd /etc/pki/tls/private
[[email protected] private]# openssl  genrsa  -out  my.key  1024  
[[email protected] private]# openssl  req  -new  -key  my.key  -out  my.csr
[[email protected] private]# cd /etc/pki/tls/certs
[[email protected] 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檔案

[[email protected] 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檔案

[[email protected] certs]# vi /etc/httpd/conf/httpd.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
    SSLRequireSSL                                     //添加此行
</Directory>
           

4、重新開機httpd

[[email protected] 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伺服器。