Wie man Apache Subversion mit Let’s encrypt SSL auf Ubuntu 18.04 einrichtet

Apache Subversion oder SVN ist ein von der Apache Software Foundation entwickeltes Open-Source-Softwareversionierungs- und Revisionskontrollsystem. Es wird verwendet, um die aktuellen und historischen Versionen von Quellcode, Dokumenten und Webseiten zu pflegen.

Die Subversion ist weit verbreitet und findet Verwendung für große Projekte und Open-Source-Community Software, auch wenn es heutzutage immer mehr von GIT verdrängt wird.

In diesem Artikel werde ich Ihnen zeigen, wie Sie Apache Subversion auf Ubuntu 18.04 LTS-Server einrichten. Wir werden die SVN-Software mit Apache als Webserver installieren und konfigurieren, die „Basisauthentifizierung“ für Benutzer aktivieren und den Zugriff mit Letsencrypt SSL für den Zugriff auf das Repository sichern.

Voraussetzungen

  • Ubuntu 18.04.
  • Root-Rechte

Was wir tun werden

  1. Apache2 Webserver auf Ubuntu 18.04 installieren
  2. Apache Subversion (SVN) installieren
  3. Konfigurieren des Subversion Repository
  4. SSL-Letsenverschlüsselung für Ubuntu Apache2 generieren
  5. Subversion Virtual Host auf Apache2 konfigurieren
  6. Prüfung

Schritt 1 – Apache2 Webserver auf Ubuntu 18.04 LTS installieren

In diesem ersten Schritt werden wir den Apache2-Webserver installieren und der ufw Firewall-Konfiguration neue Dienste ssh und HTTP hinzufügen.

Installieren Sie den Apache2-Webserver mit dem folgenden apt-Befehl.

sudo apt install apache2 apache2-utils -y

Nachdem die Installation abgeschlossen ist, fügen Sie die SSH- und HTTP-Dienste zur Konfiguration der ufw Firewall hinzu.

Führen Sie die folgenden ufw-Befehle aus.

ufw allow ssh
ufw allow http

Aktivieren Sie die Firewall.

ufw enable

Starten Sie nun den Apache2-Dienst und lassen Sie ihn jedes Mal beim Systemstart starten.

systemctl start apache2
systemctl enable apache2

Der Apache2-Webserver ist betriebsbereit, und die SSH- und HTTP-Dienste wurden der Liste der Firewall-Dienste hinzugefügt.

Apache installieren und UFW konfigurieren

Schritt 2 – Apache Subversion (SVN) installieren

In diesem Tutorial werden wir die Subversion und die svn libapache Pakete aus dem offiziellen Ubuntu Repository installieren.

Installieren Sie Subversion mit dem Befehl apt unten.

sudo apt install subversion subversion-tools libapache2-mod-svn -y

Überprüfen Sie nun den Befehl svn.

svn --version

Die Apache Subversion (SVN) wurde auf dem Ubuntu 18.04 Server installiert.

Subversion installieren

Schritt 3 – Konfigurieren eines Subversion-Repository

Nach der Subversion-Installation werden wir das Master-Subversion-Repository-Verzeichnis konfigurieren. 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.

Ein Subversion-Repository konfigurieren

Schritt 4 – Erstellen Sie ein Letsencrypt SSL-Zertifikat.

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 werden das kostenlose SSL Letsencrypt verwenden, das mit dem certbot-Tool generiert werden kann.

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

sudo apt install certbot -y

Nach Abschluss der Installation müssen wir den HTTPS-Dienst zu den Dienstlisten der ufw Firewall hinzufügen.

Führen Sie die folgenden ufw-Befehle aus.

ufw allow https
ufw reload

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

systemctl stop apache2

Certbot installieren

Erzeugen Sie die SSL-Letsenverschlüsselung für den Domänennamen’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

Und nachdem es fertig ist, erhalten Sie die Zertifikatsdateien im Verzeichnis’/etc/letsencrypt/live‘.

Erzeugen Sie ein SSL-Zertifikat mit Let's encrypt.

Schritt 5 – Subversion Virtual Host auf Apache2 konfigurieren

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

Gehen Sie in das Konfigurationsverzeichnis von ‚/etc/apache2‘.

cd /etc/apache2/

Erstellen Sie eine neue virtuelle Subversion-Host-Konfiguration ’svn.conf‘ im Verzeichnis’sites-available‘.

cd sites-available/
vim svn.conf

Fügen Sie die untenstehende Konfiguration 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 /var/log/apache2/svn_error_log
TransferLog /var/log/apache2/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 /var/log/apache2/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Speichern und beenden.

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.

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

SVN vhost im Apache konfigurieren

Aktivieren Sie das SSL-Modul auf dem Apache und aktivieren Sie den virtuellen SVN-Host, indem Sie die folgenden Befehle ausführen.

sudo a2enmod ssl
sudo a2ensite svn

Starten Sie den Apache2-Dienst neu.

systemctl restart apache2

Aktivieren Sie den Vhost und starten Sie den Apache neu.

Die virtuelle Host-Konfiguration für Subversion wurde erstellt, und der Benutzer „hakase“ hat nun Zugriff auf die Ansicht und Übertragung des Quellcodes in das Repository „hakase-project“.

Schritt 6 – Prüfung

Repository anzeigen

Öffnen Sie Ihren Webbrowser und geben Sie die Server-URL ein, meine ist die untenstehende).

https://svn.hakase-labs.io/repo/hakase-project/

Und Ihnen wird die grundlegende Benutzerauthentifizierung angezeigt.

Benutzerauthentifizierungsanfrage

Melden Sie sich mit dem Benutzer und Passwort „hakase“ an, und Sie erhalten das Repository für leere Seiten wie unten beschrieben.

Sign-in

Projekt in das SVN-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 das Vorlagenverzeichnis mit dem Befehl svn unten dem Repository’hakase-project‘ hinzu.

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

Sie werden nach einigen Dingen gefragt, handeln Sie wie folgt.

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

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

SVN-Projekt-Import prüfen

Das Repository klonen

Nachdem wir das Verzeichnis svn templates erstellt und hochgeladen haben, werden wir versuchen, das Repository in die lokale Umgebung zu klonen.

Melden Sie sich bei dem nicht-rootischen/normalen Benutzer an.

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

Klonen Sie das lokale Verzeichnis namens „myproject“ als „hakase“-Benutzer in das Repository „hakase-project“.

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

Klonen eines SVN-Repository

Überprüfen Sie das neue Verzeichnis’myproject‘ und Sie erhalten alle svn-Vorlagen.

tree ~/myproject

Repository prüfen

Commit-Quellcode

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

Commit-Code im SVN-Repo

Überprüfen Sie das Repository im Webbrowser, und Sie erhalten, dass alle Dateien zum Repository hinzugefügt wurden.

Ergebnis des Code Commits

Die Installation und Konfiguration von Apache Subversion auf dem Ubuntu 18.04 LTS Server wurde erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …