Cómo configurar Apache Subversion con HTTPS Letsencrypt en CentOS 7

Instalar e iniciar el servidor web Apache

Apache Subversion o SVN es un software de control de versiones y revisión de código abierto desarrollado por Apache Software Foundation. Se utiliza para mantener las versiones actuales e históricas del código fuente, los documentos y las páginas web.

Subversion es utilizado por muchos desarrolladores de software y proyectos de código abierto como Apache Software Foundation, FreeBSD, GCC y SourceForge.

En este art√≠culo, le mostramos c√≥mo configurar Apache Subversion en el √ļltimo servidor CentOS 7. Instalamos y configuramos el software svn con Apache como servidor web, lo aseguramos con Let’s encrypt y activamos ¬ęBasic Authentication¬Ľ para los usuarios.

requisitos previos

  • Servidor CentOS 7
  • Privilegios de ra√≠z

Lo que haremos

  1. Instalar Apache Httpd en CentOS 7
  2. Instalar subversión
  3. Configurar el repositorio de Subversion
  4. Generar SSL Letsencrypt para CentOS Apache Httpd
  5. Configurar el host virtual de Subversion en Apache Httpd
  6. Pruebas

Paso 1: instale Apache Httpd en CentOS 7

El primer paso de esta guía es instalar los paquetes Apache httpd en su sistema.

Instale Apache httpd usando el comando yum a continuación.

yum -y install httpd httpd-tools mod_ssl

Y una vez completada la instalación, debemos agregar el servicio HTTP a las listas de servicios de firewalld.

Ejecute los comandos firewall-cmd a continuación.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

Ahora inicie el servicio httpd y agréguelo para que se inicie en el arranque.

systemctl start httpd
systemctl enable httpd

Apache httpd est√° funcionando en el servidor.

Instalar e iniciar el servidor web Apache

Paso 2: instale Apache Subversion (SVN)

En este tutorial, instalaremos los paquetes de subversión desde el repositorio base de CentOS 7.

Instale Subversion y todos los paquetes requeridos usando el comando yum a continuación.

yum -y install subversion subversion-tools mod_dav_svn

Espere hasta que todos los paquetes estén instalados y luego verifique la versión svn.

svn --version

Instalar la subversión de Apache

Paso 3: configurar el repositorio de Subversion (SVN)

Despu√©s de la instalaci√≥n de Subversion, configuramos el directorio del repositorio maestro de Subversion. Crearemos un nuevo directorio ‘svn’ donde se almacenar√°n todo el c√≥digo fuente y los repositorios.

Cree un nuevo directorio maestro ‘/svn’.

mkdir /svn

Y cree un nuevo repositorio de muestra llamado ‘hakase-project’ usando el comando svnadmin a continuaci√≥n.

svnadmin create /svn/hakase-project

Ahora cambie el propietario del directorio ‘/svn/hakase-project’ al usuario y grupo ‘apache’.

sudo chown -R apache:apache /svn/hakase-project

Y se ha creado el repositorio svn.

Configurar repositorio SVN

Nota:

Adicional para usuarios de SELinux, ejecute los comandos a continuación.

chcon -R -t httpd_sys_content_t /svn/hakase-project
chcon -R -t httpd_sys_rw_content_t /svn/hakase-project

Paso 4: generar el certificado Let’s encrypt SSL para Apache

En este tutorial, configuramos el servidor svn para usar la conexi√≥n HTTPS con un dominio llamado ‘svn.hakase-labs.io’. Usaremos un certificado Let’s encrypt SSL gratuito que se puede generar con la herramienta certbot.

Instale certbot en el servidor CentOS con el comando yum a continuación.

yum -y install certbot

Cuando se complete la instalación, debemos agregar el servicio HTTPS a la lista de servicios del cortafuegos.

Ejecute los comandos firewalld a continuación.

firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload

Ahora detenga el servicio httpd, para que podamos generar SSL Letsencrypt utilizando el servidor web temporal ‘independiente’.

systemctl stop httpd

Generar certificado LE SSL

Genere el certificado SSL Letsencrypt para el nombre de dominio ‘svn.hakase-labs.io’ usando el comando certbot a continuaci√≥n.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io

Ahora obtendr√° los archivos del certificado en el directorio ‘/etc/letsencrypt/live’.

Utilice el software certbot

Paso 5: configure el host virtual de Subversion en Apache Httpd

En este paso, crearemos una nueva configuraci√≥n Apache httpd para el acceso svn. Configuraremos el repositorio svn usando un nombre de dominio ‘svn.hakase-labs.io’, y solo ser√° accesible para los usuarios registrados que usan la autenticaci√≥n b√°sica HTTP.

Vaya al directorio ‘/etc/httpd/conf.d’ y cree una nueva configuraci√≥n svn ‘svn.conf’.

cd /etc/httpd/conf.d/
vim svn.conf

Pegue las configuraciones a continuación.

<VirtualHost svn.hakase-labs.io:80>

ServerName svn.hakase-labs.io
DocumentRoot /var/www/html
Redirect permanent / https://svn.hakase-labs.io

</VirtualHost>

<VirtualHost svn.hakase-labs.io:443>

DocumentRoot /var/www/html
ServerName svn.hakase-labs.io

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pem

ErrorLog logs/svn_error_log
TransferLog logs/svn_access_log
LogLevel warn

<location /repo>
DAV svn
SVNParentPath /svn/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn.users
Require valid-user
</location>

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Guarde el archivo y salga del editor.

A continuación, debemos crear una nueva lista de usuarios que podrán ver y enviar archivos al repositorio.

Cree un nuevo usuario llamado ‘hakase’ usando el comando htpasswd a continuaci√≥n.

sudo htpasswd -cm /etc/subversion/svn.users hakase

Ahora reinicie los servicios httpd de Apache.

systemctl restart httpd

El usuario ‘hakase’ ahora tiene acceso para ver y enviar el c√≥digo fuente al repositorio ‘hakase-project’.

Configurar el archivo svn.conf

Paso 6 – Prueba

Visualización del repositorio

Abra su navegador web y escriba la URL del servidor, la mía es esta: https://svn.hakase-labs.io/repo/hakase-project/

Y se le mostrará el indicador básico de autenticación de usuario.

Iniciar sesión en web-svn

Inicie sesi√≥n con el usuario y la contrase√Īa ‘hakase’, y el siguiente es el resultado.

Repositorio SVN en navegador web

Importar un Proyecto al Repositorio

Ahora importaremos las plantillas de proyecto de muestra svn al repositorio ‘hakase-project’.

Cree un nuevo directorio de proyectos svn-templates.

mkdir -p ~/svn-templates/{trunk,branches,tags}

Agregue el directorio de todas las plantillas al repositorio ‘hakase-project’ usando el comando svn a continuaci√≥n.

svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase

Ahora se le pedir√° lo siguiente.

  • Escriba ‘p’ para agregar permanentemente el certificado Letsencrypt.
  • Escriba el usuario y la contrase√Īa ‘hakase’.
  • Y escriba ‘s√≠’ para confirmar que se guard√≥ la contrase√Īa sin cifrar.

Importar un Proyecto al Repositorio

Verifique el ‘proyecto hakase’ desde el navegador web, y obtendr√° todo el directorio de plantillas en √©l.

Proyecto mostrado en el navegador web

Clonar el repositorio

Después de crear y cargar el directorio de plantillas svn, queremos clonar o copiar el repositorio en el entorno local.

Cree un nuevo usuario normal e inicie sesión en el usuario.

useradd -m -s /bin/bash misaka
su - misaka

Clone el repositorio ‘hakase-project’ en el directorio local llamado ‘myproject’ como un usuario ‘hakase’.

svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase

Y se le volverá a preguntar sobre esas cosas a continuación.

  • Escriba ‘p’ para agregar permanentemente el certificado Letsencrypt.
  • Escriba el usuario y la contrase√Īa ‘hakase’.
  • Y escriba ‘s√≠’ para confirmar que se guard√≥ la contrase√Īa sin cifrar.

Clonar repositorio SVN

Y cuando est√© completo, verifique el nuevo directorio ‘myproject’ y obtendr√° todas las plantillas svn.

tree ~/myproject

Vista de √°rbol del proyecto.

Confirmar el código o los documentos

Vaya al directorio ‘miproyecto’.

cd myproject/

Cree algunos archivos en el directorio ‘troncal’.

echo 'this is my repo' > trunk/test-hakase.txt
echo 'this is my repo01' > trunk/test-hakase01.txt
echo 'this is my repo02' > trunk/test-hakase02.txt

Agregar y confirmar.

svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase

Enviar documentos a svn

Verifique el repositorio desde el navegador web y ver√° que todos los archivos se han agregado al repositorio.

Documentos en el navegador

La instalación y configuración de Apache Subversion con HTTPS Letsencrypt en CentOS 7 se completó con éxito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *