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
- Apache Httpd auf CentOS 7 installieren
- Subversion installieren
- Konfigurieren des Subversion Repository
- SSL-Letsenverschlüsselung für CentOS Apache Httpd generieren
- Subversion Virtual Host auf Apache Httpd konfigurieren
- 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.
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
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.
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
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‘.
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.
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.
Melden Sie sich mit dem Benutzer und dem Passwort „hakase“ an, und es ergibt sich folgendes.
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.
Ü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, 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.
Und wenn es fertig ist, überprüfen Sie das neue Verzeichnis’myproject‘ und Sie erhalten alle svn-Vorlagen.
tree ~/myproject
Ü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
Überprüfen Sie das Repository im Webbrowser, und Sie werden sehen, dass alle Dateien dem Repository hinzugefügt wurden.
Die Installation und Konfiguration von Apache Subversion mit HTTPS Letsencrypt auf CentOS 7 wurde erfolgreich abgeschlossen.