So richten Sie Apache Subversion mit HTTPS Letsencrypt auf CentOS 7 ein

Apache Subversion oder SVN ist eine von der Apache Software Foundation entwickelte Open-Source-Versionierungs- und Revisionskontrollsoftware. Es dient der Pflege der aktuellen und historischen Versionen von Quellcode, Dokumenten und Webseiten.

Subversion wird von vielen Softwareentwicklern und Open-Source-Projekten wie Apache Software Foundation, FreeBSD, GCC und SourceForge verwendet.

In diesem Artikel zeigen wir Ihnen, wie Sie Apache Subversion auf dem neuesten CentOS 7-Server einrichten. Wir installieren und konfigurieren die SVN-Software mit Apache als Webserver, sichern sie mit Let’s encrypt und aktivieren „Basic Authentication“ für Benutzer.

Voraussetzungen

  • CentOS 7 Server
  • Root-Rechte

Was wir tun werden

  1. Apache Httpd auf CentOS 7 installieren
  2. Subversion installieren
  3. Konfigurieren des Subversion Repository
  4. SSL-Letsenverschlüsselung für CentOS Apache Httpd generieren
  5. Subversion Virtual Host auf Apache Httpd konfigurieren
  6. Prüfung

Schritt 1 – Apache Httpd auf CentOS 7 installieren

Der erste Schritt in diesem Handbuch ist die Installation der Apache httpd-Pakete auf Ihrem System.

Installieren Sie Apache httpd mit dem Befehl yum unten.

yum -y install httpd httpd-tools mod_ssl

Und nachdem die Installation abgeschlossen ist, müssen wir den HTTP-Dienst zu den Firewalld-Servicelisten hinzufügen.

Führen Sie untenstehende Firewall-cmd-Befehle aus.

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

Starten Sie nun den httpd-Dienst und fügen Sie ihn hinzu, um ihn beim Booten zu starten.

systemctl start httpd
systemctl enable httpd

Der Apache httpd ist auf dem Server installiert und läuft.

Installation und Start des Apache Webservers

Schritt 2 – Apache Subversion (SVN) installieren

In diesem Tutorial werden wir die Subversionspakete aus dem Basis-Repository von CentOS 7 installieren.

Installieren Sie Subversion und alle erforderlichen Pakete mit dem Befehl yum unten.

yum -y install subversion subversion-tools mod_dav_svn

Warten Sie, bis alle Pakete installiert sind und überprüfen Sie dann die svn-Version.

svn --version

Apache Subversion installieren

Schritt 3 – Konfigurieren des Subversion (SVN) Repository

Nach der Installation von Subversion konfigurieren wir das Master-Subversion-Repository-Verzeichnis. Wir werden ein neues’svn‘ Verzeichnis erstellen, in dem alle Quellcodes und Repositories gespeichert werden.

Erstellen Sie ein neues Masterverzeichnis „/svn“.

mkdir /svn

Und erstellen Sie ein neues Beispiel-Repository namens’hakase-project‘ mit dem Befehl svnadmin unten.

svnadmin create /svn/hakase-project

Ändern Sie nun den Besitzer des Verzeichnisses’/svn/hakase-project‘ auf den Benutzer und die Gruppe’apache‘.

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

Und das SVN-Repository wurde erstellt.

SVN-Repository konfigurieren

Hinweis:

Zusätzlich für SELinux-Benutzer, führen Sie die folgenden Befehle aus.

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

Schritt 4 – Generieren Sie Let’s encrypt SSL-Zertifikat für Apache

In diesem Tutorial konfigurieren wir den SVN-Server so, dass er die HTTPS-Verbindung mit einer Domäne namens’svn.hakase-labs.io‘ verwendet. Wir verwenden ein kostenloses Let’s encrypt SSL-Zertifikat, das mit dem certbot-Tool generiert werden kann.

Installieren Sie certbot auf dem CentOS-Server mit dem Befehl yum unten.

yum -y install certbot

Wenn die Installation abgeschlossen ist, müssen wir den HTTPS-Dienst zur Liste der Firewalldienste hinzufügen.

Führen Sie untenstehende Firewalld-Befehle aus.

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

Stoppen Sie nun den httpd-Dienst, damit wir die SSL-Letsenverschlüsselung über den temporären Webserver „Standalone“ generieren können.

systemctl stop httpd

LE SSL-Zertifikat generieren

Erzeugen Sie das Letsencrypt SSL Cert für den Domainnamen’svn.hakase-labs.io‘ mit dem Befehl certbot unten.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email hakase@gmail.com -d svn.hakase-labs.io

Nun erhalten Sie die Zertifikatsdateien im Verzeichnis’/etc/letsencrypt/live‘.

Verwenden der certbot-Software

Schritt 5 – Subversion Virtual Host auf Apache Httpd konfigurieren

In diesem Schritt erstellen wir eine neue Apache httpd-Konfiguration für den SVN-Zugang. Wir werden das SVN-Repository mit einem Domänennamen ’svn.hakase-labs.io‘ konfigurieren, und es wird nur für die registrierten Benutzer zugänglich sein, die den HTTP-Basisauthentifikator verwenden.

Gehen Sie zum Verzeichnis ‚/etc/httpd/conf.d‘ und erstellen Sie eine neue SVN-Konfiguration ’svn.conf‘.

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

Füge die folgenden Konfigurationen ein.

<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>

Speichern Sie die Datei und verlassen Sie den Editor.

Als nächstes müssen wir eine neue Liste von Benutzern erstellen, die Dateien anzeigen und in das Repository übertragen können.

Erstellen Sie einen neuen Benutzer namens’hakase‘ mit dem Befehl htpasswd unten.

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

Starten Sie nun die Apache httpd-Dienste neu.

systemctl restart httpd

Der Benutzer’hakase‘ hat nun Zugriff darauf, den Quellcode anzuzeigen und in das Repository’hakase-project‘ zu übertragen.

Konfigurieren der Datei svn.conf

Schritt 6 – Prüfung

Repository anzeigen

Öffnen Sie Ihren Webbrowser und geben Sie die Server-URL ein, meine ist diese: https://svn.hakase-labs.io/repo/hakase-project/

Und Ihnen wird die Eingabeaufforderung zur grundlegenden Benutzerauthentifizierung angezeigt.

Anmeldung bei web-svn

Melden Sie sich mit dem Benutzer und dem Passwort „hakase“ an, und es ergibt sich folgendes.

SVN-Repository im Webbrowser

Ein Projekt in das Repository importieren

Nun importieren wir die SVN-Beispielprojektvorlagen in das Repository „hakase-project“.

Erstellen Sie ein neues svn-Vorlagen-Projektverzeichnis.

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

Fügen Sie mit dem Befehl svn unten das Verzeichnis aller Vorlagen zum Repository’hakase-project‘ hinzu.

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

Nun werden Sie im Folgenden gefragt.

  • Geben Sie’p‘ ein, um das Letsencrypt-Zertifikat dauerhaft hinzuzufügen.
  • Geben Sie den Benutzer „hakase“ und das Passwort ein.
  • Und geben Sie „yes“ ein, um das Speichern des unverschlüsselten Passworts zu bestätigen.

Ein Projekt in das Repository importieren

Überprüfen Sie das’hakase-Projekt‘ im Webbrowser, und Sie erhalten alle Vorlagenverzeichnisse darauf.

Projekt wird im Webbrowser angezeigt

Das Repository klonen

Nachdem wir das Verzeichnis svn templates erstellt und hochgeladen haben, wollen wir das Repository klonen oder in die lokale Umgebung kopieren.

Erstellen Sie einen neuen normalen Benutzer und melden Sie sich beim Benutzer an.

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

Klonen Sie das Repository’hakase-project‘ das lokale Verzeichnis namens’myproject‘ als’hakase‘ Benutzer.

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

Und du wirst noch einmal nach diesen Dingen gefragt.

  • Geben Sie’p‘ ein, um das Letsencrypt-Zertifikat dauerhaft hinzuzufügen.
  • Geben Sie den Benutzer „hakase“ und das Passwort ein.
  • Und geben Sie „yes“ ein, um das Speichern des unverschlüsselten Passworts zu bestätigen.

SVN-Repository klonen

Und wenn es fertig ist, überprüfen Sie das neue Verzeichnis’myproject‘ und Sie erhalten alle svn-Vorlagen.

tree ~/myproject

Baumansicht des Projekts

Übertragen des Codes oder der Dokumente

Gehen Sie in das Verzeichnis’myproject‘.

cd myproject/

Erstellen Sie einige Dateien im Verzeichnis’trunk‘.

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

Hinzufügen und Übertragen.

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

Dokumente in svn übertragen

Überprüfen Sie das Repository im Webbrowser, und Sie werden sehen, dass alle Dateien dem Repository hinzugefügt wurden.

Dokumente im Browser

Die Installation und Konfiguration von Apache Subversion mit HTTPS Letsencrypt auf CentOS 7 wurde erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …