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
- Apache2 Webserver auf Ubuntu 18.04 installieren
- Apache Subversion (SVN) installieren
- Konfigurieren des Subversion Repository
- SSL-Letsenverschlüsselung für Ubuntu Apache2 generieren
- Subversion Virtual Host auf Apache2 konfigurieren
- 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.
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.
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.
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
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 [email protected] -d svn.hakase-labs.io
Und nachdem es fertig ist, erhalten Sie die Zertifikatsdateien im Verzeichnis’/etc/letsencrypt/live‘.
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
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
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.
Melden Sie sich mit dem Benutzer und Passwort „hakase“ an, und Sie erhalten das Repository für leere Seiten wie unten beschrieben.
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.
Überprüfen Sie das’hakase-Projekt‘ im Webbrowser, und Sie erhalten alle Vorlagenverzeichnisse darauf.
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
Überprüfen Sie das neue Verzeichnis’myproject‘ und Sie erhalten alle svn-Vorlagen.
tree ~/myproject
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
Überprüfen Sie das Repository im Webbrowser, und Sie erhalten, dass alle Dateien zum Repository hinzugefügt wurden.
Die Installation und Konfiguration von Apache Subversion auf dem Ubuntu 18.04 LTS Server wurde erfolgreich abgeschlossen.