HowTo, Sysadmin, Ubuntu

Subversion com Apache+SSL+BasicAuth no Ubuntu Server 8.04

Surgiu a necessidade de implementar o Subversion num cliente, após algumas pesquisas encontrei um excelente post sobre o assunto, foi preciso fazer alguns ajustes para aparar algumas arestas mas ficou excelente.

Segue o passo a passo desta solução:

Instale os pacotes necessários

sudo aptitude install subversion libapache2-svn apache2 ssl-cert

Habilitando o SSl no Apache2

Crie o certificado

sudo mkdir /etc/apache2/ssl

sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Defina a permissão para o arquivo criado

chmod 600 /etc/apache2/apache.pem

Edite o arquivo /etc/apache2/ports.conf e adicione a seguinte linha se ela não existir:

Listen 443

Habilite o suporte a SSL no apache2 da seguinte forma:

a2enmod ssl

Crie o Virtual Host:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svn

sudo vim /etc/apache2/sites-available/svn

Mude os seguintes itens:

NameVirtualHost *:443

VirtualHost *:443 #Veja a OBS abaixo

Adicione as seguintes linhas:
SSLEngine on
ServerSignature On
SSLCertificateFile /etc/apache2/apache.pem

#OBS:Esta linha esta entre os sinais “maior que e menor que”, O WordPress não sei porque carga d’águas apaga tudo que contém “maior que e menor que”.

Habilite o site e reinicie o apache2:

sudo a2ensite svn
sudo apache2ctl

Adicione os respositórios:

sudo mkdir /var/svn
sudo svnadmin create /var/svn/teste
sudo chown -R www-data:www-data /var/svn/teste
sudo chmod -R g+ws /var/svn/teste

Habilite a autenticação no Apache2

sudo htpasswd2 -c -m /etc/apache2/dav_svn.passwd admin

Habilite e configure o WebDAV e o SVN

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

Descomente as seguintes linhas

DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL

Reinicie o Apache2

sudo apache2ctl restart

Agora chegou a hora de testarmos nosso servidor

No navegador digite:

https://ip_do_servidor/svn/teste

Se estiver tudo OK deverá surgir um link para o diretório do repositório

Na console digite:

touch teste.txt

svn import –username admin teste.txt https://ip_do_servidor/svn/teste/testdir -m “Testing

depois digite:

svn co –username admin https://ip_do_servidor/svn/teste

Se os usuários deste serviço usarem Windows(tm) como S.O. recomendo a instalação do TortoiseSVN

8 Comments

  1. Muito Bom !

    Estava procurando um tutorial assim ! Como não havia achado ainda, resolvi instalar o VisualSVN com windows, agora já posso voltar p. linux.

  2. Ficou muito show.
    Parabéns!

    Mas eu preciso de sua ajuda!
    Eu só recebi esta mensagem.

    “Forbidden

    You don’t have permission to access /svn/ on this server.”

    O que você acha que pode estar provocando esse problema de negação de acesso?

  3. Boas,

    este tutorial está demais… só que não consigo sincronizar dados com o Tortoise… acedo por www À pasta teste, mas não vejo lá mais nada…

    O Acesso svn+ssh está dando sempre erro… alguma ajuda?

    [[]] NUNO

  4. Olá, muito obrigado pelo tutorial.

    Mas tive problemas testando no Ubuntu Hardy Heron e no Intrepid Ibex.
    O erro ocorre quando vou testar:
    https://ip_do_servidor/svn/teste

    O Firefox me exibe a seguinte mensagem:

    Falha na conexão segura
    localhost usa um certificado de segurança inválido.
    O certificado não é considerado confiável porque é auto-assinado.
    (Código do erro: sec_error_ca_cert_invalid)

    Pode me ajudar com isto? Obrigado!

Comments are closed.