Subversion + Apache2 + SSL on Ubuntu in 10 steps

1. Install required packages

sudo apt-get install subversion libapache2-svn
                         libapache-mod-dav apache2

2. Enable SSL support in Apache

sudo a2enmod ssl

3. Stop Apache

sudo /etc/init.d/apache2 stop

4. Let Apache2 listen on port 443

sudo echo "Listen 443" >> /etc/apache2/ports.conf

5. Create SSL certificate

sudo apache2-ssl-certificate

6. Configure site

sudo cp /etc/apache2/sites-available/default
            /etc/apache2/sites-available/<sitename>

then edit

sudo gedit /etc/apache2/sites-available/<sitename>
  1. Change NameVirtualHost to NameVirtualHost *:443
  2. Change <VirtualHost> to <VirtualHost *:443>
  3. Append before </VirtualHost> the following
SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem
        SSLProtocol all
        SSLCipherSuite HIGH:MEDIUM

Note: <sitename> should be same as your hostname

7. Create a Subversion Repository

sudo svnadmin create /opt/svn
    sudo chown -R www-data:www-data /opt/svn
    sudo chmod -R g+ws /opt/svn

8. Use Apache for Authentication

sudo htpasswd -c -m /opt/svn/conf/htpasswds <username>

9. Configure mod_dav

edit dav_svn.conf

sudo gedit /etc/apache2/mods-available/dav_svn.conf

DAV svn
        SVNPath /opt/svn
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /opt/svn/conf/htpasswds
        Require valid-user
        SSLRequireSSL

Disable anonymous browsing by commenting out the following:

#<LimitExcept GET PROPFIND OPTIONS REPORT>
    #  Require valid-user
    #</LimitExcept>

10. Start Apache

sudo /etc/init.d/apache2 start

Now try to browse https://<sitename>/svn and import something

Để lại hồi âm