Apache Subversion instellen met HTTPS Letsencrypt op CentOS 7
Apache Subversion of SVN is open bron software voor versiebeheer en revisiebeheer, ontwikkeld door de Apache Software Foundation. Het wordt gebruikt om de huidige en historische versies van broncode, documenten en webpagina’s bij te houden.
Subversion wordt gebruikt door veel software ontwikkelaars en open bron projecten zoals Apache Software Foundation, FreeBSD, GCC en SourceForge.
In dit artikel laten we je zien hoe je Apache Subversion kunt instellen op de nieuwste CentOS 7 server. We installeren en configureren de svn software met Apache als webserver, beveiligen het met Let’s encrypt en activeren “Basic Authentication” voor gebruikers.
Vereisten
- CentOS 7 server
- Root rechten
Wat we zullen doen
- Installeer Apache Httpd op CentOS 7
- Subversion installeren
- De Subversion Repository configureren
- Genereer SSL Letsencrypt voor CentOS Apache Httpd
- Configureer Subversion Virtuele Host op Apache Httpd
- Testen van
Stap 1 – Installeer Apache Httpd op CentOS 7
De eerste stap in deze gids is het installeren van de Apache httpd pakketten op je systeem.
Installeer Apache httpd met het onderstaande yum commando.
yum -y install httpd httpd-tools mod_ssl
En nadat de installatie voltooid is, moeten we de HTTP dienst toevoegen aan de firewalld dienstenlijsten.
Voer onderstaande firewall-cmd commando’s uit.
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
Start nu de httpd dienst en voeg toe dat die bij het opstarten gestart moet worden.
systemctl start httpd
systemctl enable httpd
De Apache httpd is up and running op de server.
Stap 2 – Installeer Apache Subversion (SVN)
In deze handleiding installeren we de subversion pakketten uit de basis CentOS 7 repository.
Installeer Subversion en alle vereiste pakketten met het yum commando hieronder.
yum -y install subversion subversion-tools mod_dav_svn
Wacht tot alle pakketten geïnstalleerd zijn en controleer dan de svn versie.
svn --version
Stap 3 – Configureer de Subversion (SVN) Repository
Na de Subversion installatie configureren we de master subversion repository directory. We maken een nieuwe ‘svn’ map aan waarin alle broncode en repositories zullen worden opgeslagen.
Maak een nieuwe ‘/svn’ hoofdmap.
mkdir /svn
En maak een nieuwe voorbeeld repository met de naam ‘hakase-project’ met het onderstaande svnadmin commando.
svnadmin create /svn/hakase-project
Verander nu de eigenaar van de ‘/svn/hakase-project’ directory in de ‘apache’ gebruiker en groep.
sudo chown -R apache:apache /svn/hakase-project
En de svn repository is gemaakt.
Opmerking:
Extra voor SELinux gebruikers, voer onderstaande commando’s uit.
chcon -R -t httpd_sys_content_t /svn/hakase-project
chcon -R -t httpd_sys_rw_content_t /svn/hakase-project
Stap 4 – Genereer Let’s encrypt SSL Certificaat voor Apache
In deze handleiding configureren we de svn server om de HTTPS verbinding te gebruiken met een domein genaamd ‘svn.hakase-labs.io’. We zullen een gratis Let’s encrypt SSL certificaat gebruiken dat met het certbot gereedschap kan worden gegenereerd.
Installeer certbot op de CentOS server met het onderstaande yum commando.
yum -y install certbot
Als de installatie voltooid is, moeten we de HTTPS dienst aan de firewalld dienstenlijst toevoegen.
Voer onderstaande firewalld commando’s uit.
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
Stop nu de httpd dienst, zodat we de SSL Letsencrypt kunnen genereren met de ‘standalone’ tijdelijke webserver.
systemctl stop httpd
Genereer het Letsencrypt SSL Cert voor de domeinnaam ‘svn.hakase-labs.io’ met het onderstaande certbot commando.
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io
Nu krijg je de certificaat bestanden in de ‘/etc/letsencrypt/live’ directory.
Stap 5 – Configureer Subversion Virtuele Host op Apache Httpd
In deze stap maken we een nieuwe Apache httpd configuratie voor de svn toegang. We zullen de svn repository configureren met een domeinnaam ‘svn.hakase-labs.io’, en hij zal alleen toegankelijk zijn voor de geregistreerde gebruikers die de HTTP basic auth gebruiken.
Ga naar de ‘/etc/httpd/conf.d’ directory en maak een nieuwe svn configuratie ‘svn.conf’.
cd /etc/httpd/conf.d/
vim svn.conf
Plak de configuraties hieronder.
<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>
Bewaar het bestand en sluit de editor af.
Nu moeten we een nieuwe lijst van gebruikers aanmaken die bestanden in het archief kunnen bekijken en vastleggen.
Maak een nieuwe gebruiker aan met de naam ‘hakase’ met het onderstaande htpasswd commando.
sudo htpasswd -cm /etc/subversion/svn.users hakase
Herstart nu de Apache httpd diensten.
systemctl restart httpd
De ‘hakase’ gebruiker heeft nu toegang om de broncode in het ‘hakase-project’ depot te bekijken en vast te leggen.
Stap 6 – Testen
Repository bekijken
Open je web browser en typ de URL van de server in, de mijne is deze: https://svn.hakase-labs.io/repo/hakase-project/
En je krijgt de basis gebruikersauthenticatie prompt te zien.
Log in met de ‘hakase’ gebruiker en wachtwoord, en het volgende is het resultaat.
Importeer een Project naar de Repository
Nu zullen we de svn voorbeeld project sjablonen importeren in het ‘hakase-project’ depot.
Maak een nieuwe svn-templates project map.
mkdir -p ~/svn-templates/{trunk,branches,tags}
Voeg alle sjablonen map toe aan de ‘hakase-project’ repository met het onderstaande svn commando.
svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase
Nu wordt je het volgende gevraagd.
- Typ ‘p’ om het Letsencrypt certificaat permanent toe te voegen.
- Typ de ‘hakase’ gebruiker en wachtwoord.
- En type ‘yes’ om te bevestigen over het bewaren van het onversleutelde wachtwoord.
Bekijk het ‘hakase-project’ vanuit de web browser, en je krijgt er alle sjablonen-map op.
Kloon de Repository
Na het aanmaken en uploaden van de svn sjablonen map, willen we de repository klonen of kopiëren naar de lokale omgeving.
Maak een nieuwe gewone gebruiker aan en log in op de gebruiker.
useradd -m -s /bin/bash misaka
su - misaka
Kloon de ‘hakase-project’ repository de lokale map met de naam ‘myproject’ als ‘hakase’ gebruiker.
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
En je wordt opnieuw gevraagd naar die dingen hieronder.
- Type ‘p’ om het Letsencrypt certificaat permanent toe te voegen.
- Typ de ‘hakase’ gebruiker en het wachtwoord.
- En type ‘yes’ om te bevestigen over het bewaren van het onversleutelde wachtwoord.
En als dat klaar is, kijk dan in de nieuwe ‘myproject’ directory en je krijgt alle svn sjablonen te zien.
tree ~/myproject
De code of documenten vastleggen
Ga naar de ‘myproject’ directory.
cd myproject/
Maak enkele bestanden aan op de ’trunk’ directory.
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
Voeg toe en commit.
svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase
Bekijk de repository vanuit de web browser, en je ziet dat alle bestanden aan de repository zijn toegevoegd.
De Apache Subversion installatie en configuratie met HTTPS Letsencrypt op CentOS 7 is met succes voltooid.