上一篇 已經介紹了通過 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伺服器。