Schlagwort-Archive: Apache Webserver

SSL-Verschlüsselung von Websites Apache HTTP Server | Linux Ubuntu Server 12.04.2 LTS

Bereits im Eintrag vom 30. April 2013 habe ich ansatzweise erläutert, mit welchen Mitteln eine SSL-Verschlüsselung des Webservers zu realisieren ist. Um dieses Wissen anzuwenden, werden nun jene Schritte erläutert, um eine konkrete Subdomain http://xy.meinedomain.com durch ein SSL-Zertifikat abzusichern. An dieser Stelle wird davon ausgegangen, dass ihr bereits über eine abgeschlossene Installation des Webservers als auch des entsprechenden Dienstes verfügt. Dieser soll nunmehr über die abzusichernde Subdomain aufgerufen werden.

Zunächst nochmals die wichtigsten Links zum Thema:

Wiki.Ubuntuusers.de – Apache SSL

Heise Security SSL für lau

Zertifizierungstelle StartSSL

Ein SSL-Zertifikat kann durch kommerzielle Anbieter (Verisign, RapidSSL etc.) ausgestellt werden, dessen Preisen sich nach Authentifizierungsmethode und Laufzeit richten. Es gibt jedoch auch einen israelischen Anbieter (StartSSL), der ein kostenloses Zertifikat für ein Jahr Laufzeit ausstellt. Dessen Wurzelzertifikat ist bereits in allen gängigen Webbrowsern enthalten ist. Dadurch wird keine Fehlermeldung bei Aufruf der Domain ausgegeben. StartSSL verwendet als Authentifizierungsmethode eine Domainvalidierung. Diese ist Voraussetzung für die Ausstellung eines Zertifikats.

Theorie:

  1. Aktivierung des entsprechenden Apache-Moduls
  2. Änderung des Port-Konfiguration des Apache-Webservers
  3. Generierung eines Schlüsselpaars (öffentlicher und privater Schlüssel)
  4. Auslesen des öffentlichen Schlüssels und Erstellung eines Certificate Signing Request (CSR)
  5. Übermittlung des CSR an die Certificate Authority (CA)
  6. Ausstellen des Zertifikats durch die CA
  7. Speicherung des Zertifikats auf dem Webserver und Auslieferung an die Clients

Praxis:

Alle Arbeiten an der Konfiguration des Webservers sollten im Ordner /etc/apache2 durchgeführt werden.

Einige Befehle für den Apache-Webserver:

sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restart
sudo service apache2 force-reload

1. Schritt: Änderung der Konfiguration ports.conf (/etc/apache2) des Apache-Webservers, so dass dieser auf Anfragen des Ports 443 reagiert (Standard-Port für HTTPS-Verbindungen). Falls der Server über einen SSH-Dienst verfügt, kann die Konfiguration bequem über eine SFTP-Verbindung übertragen und am lokalen Rechner bearbeitet werden. Jedoch ist die Bearbeitung mittels eines SSH-Terminals und einem passenden Editors (z.B. vi) in der Regel komfortabler.

sudo vi /etc/apache2/ports.conf

Die folgenden beiden Argumente sollten nicht auskommentiert, also aktiv sein:

[IfModule mod_ssl.c]
Listen 443
[/IfModule]
[IfModule mod_gnutls.c]
Listen 443
[/IfModule]

Bitte <> anstelle [] verwenden!

2. Schritt: Danach kann das SSL-Modul aktiviert werden.

sudo a2enmod ssl

Über den Befehl sudo a2dismod ssl kann das Modul auch jederzeit wieder deaktiviert werden.

3. Schritt: Nun wird das Schlüsselpaar (öffentlicher und privater Key) generiert:

openssl genrsa -out xy.meinedomain.com.com.key 2048

Anschließend kann das CSR erstellt werden:

openssl req -new -nodes -newkey rsa:2048 -keyout xy.meinedomain.com.key -out xy.meinedomain.com.csr

Dabei werden einige Punkte abgefragt sowie ein Challenge Password gefordert. Dieser Punkt kann mit einer Enter-Bestätigung übersprungen werden. Nach diesem Schritt befinden sich zwei neue Dateien xy.meinedomain.com.key sowie xy.meinedomain.com.csr im Arbeitsordner /etc/apache2. Diese sollten im Anschluss auf den lokalen Rechner gespeichert werden.

3. Schritt: Jetzt wird mit dem Anlegen eines Benutzeraccount bei StartSSL begonnen: Control Panel – Sign-Up. Nachdem alle Angaben gemacht wurden, wird die Validierung der Domain durchgeführt: Validations Wizard – „Type“ Domain Name Validation. Abgeschlossen wird der Vorgang mit der Zusendung und Eingabe des Bestätigungscodes.

4. Schritt: Im Anschluss kann das Zertifikat beantragt werden: Certificates Wizard – „Certificate Target“ WebServer SSL/TLS – Skip „Generate Private Key“ – Submit Certificate Request (CSR). Hier den Inhalt der Datei  xy.meinedomain.com.csr einfügen und übermitteln. Danach den „Top Target Domain“ auswählen und Subdomain festlegen. Damit ist der Prozess abgeschlossen. Mit einem Klick auf „Continue“ wird der Zertifikatinhalt erzeugt. Dieser wird vollständig in eine Textdatei kopiert und mit der Endung .crt abgespeichert.

5. Schritt: Zuletzt müsst ihr noch die Zertifikate „StartComm Root CA (PEM encoded)“ und das „Class 1 Intermediate Server CA“ herunterladen. Nun alle Dateien auf den Server übertragen und  in einem separaten Ordner unter /etc/apache2 abspeichern.

Abschließender Schritt: Abschließend muss ein VirtualHost für den SSL-Zugriff angelegt werden. Falls der abzusichernde Webservice bereits über eine Subdomain erreicht wird, kann auch eine Änderung notwendig sein. In der Regel werden die VirtualHost-Dateien unter /etc/apache2/sites-available unter ihrem Subdomainnamen abgespeichert. Die beispielhafte Konfiguration ist nachfolgend dargestellt:

2013-08-05_190730

 

Durch Ausführen eines Neustarts des Apache-Webservers wird die neue Konfiguration übernommen und der Webservice sollte nun verschlüsselt über die Subdomain aufgerufen werden können.

Installation Grundsystem inkl. Owncloud 5.0.5 Linux Ubuntu Server 12.04.2 LTS

Nachdem die Installation und Konfiguration der MySQL-Datenbank sowie der Skriptsprache PHP nur unter erheblichen Mehraufwand realisiert werden konnte und die Funktionalitäten von Owncloud unter IIS 7.5 / 8 bisher nur eingeschränkt verfügbar sind, ist die gesamte Architektur des Colocation-Servers geändert worden. Um zu einem späteren Zeitpunkt das Betriebssystem wechseln zu können, wurde auch der Einsatz der spezifischen Virtualisierungsplattform „Hyper-V“ überdacht. Zentraler Bestandteil des neuerlichen Konzepts ist die Verwendung der Virtualisierungssoftware „Virtual Box“.

Zukünftig sollen zwei virtuelle Maschinen die zentralen Aufgaben des Colocation-Servers übernehmen. Ein linux-basiertes System soll auf der Basis einer LAMP-Installation alle Hostingaufgaben realisieren und durch den Einsatz einer RSYNC- sowie FTP-Serverrolle als Backupsystem fungieren. Zusätzlich wird durch die Installation der Plex-Serversoftware jene Maschine als Mediaserver genutzt. Ein windows-basiertes System soll als Entwicklerplattform dienen und durch die freie Skalierbarkeit zusätzlicher Ressourcen für den Einsatz von Active Directory-, Sharepoint- und Exchange-Rollen bereitstellen.

Somit kommen wir zunächst zu einer ausführlichen Dokumentation der Testumgebung. Als erster wichtiger Baustein wird die Installation des Linux-Servers vorangetrieben. Durch die Einrichtung einer neuen virtuellen Maschine unter „Virtual Box“, wird das Fundament für den produktiven Einsatz gelegt.

Nachdem die Installation abgeschlossen ist, kann das System durch folgende Befehle aktualisiert werden.

sudo apt-get update
sudo apt-get upgrade

Da der Colocation-Server hardwareseitig genügend Potenzial für ein leistungsfähiges System besitzt und für die spätere Verwaltung von Medieninhalten eine grafische Oberfläche vorteilhaft sein kann, wird nachträglich ein GUI (Graphic User Interface) installiert.

sudo apt-get install ubuntu-desktop

Nun kann die Linux-Installation nach den Anforderungen der Anwendungen konfiguriert werden. In einem ersten Schritt wird die Webserver [Linux, Apache, PHP, MySQL (LAMP)] beschrieben.

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin

Jetzt kann die Vorbereitung des Webservers und des Datenspeicherorts für Owncloud gestartet werden. Hinsichtlich späterer Datensicherungsmöglichkeiten und erhöhter Flexibilität bei der Datenspeicherung wird eine eigene virtuelle Festplatte erstellt. Diese wird mit über den nachfolgenden Befehl mit den entsprechenden Rechten für die Apache-Nutzergruppe ausgestattet.

chown -R www-data:www-data /datalocation

Wiki.Ubuntuusers.de – CHOWN

Optional kann der Apache-Webserver mit einer SSL-Zertifikat gesichert werden. Diese Möglichkeit soll zu einem späteren Zeitpunkt genutzt werden.

Heise Security SSL für lau

Wiki.Ubuntuusers.de – Apache SSL

SSLTrust – Apache 2.x SSL Einrichtung

Zertifizierungstelle CAcert

Zertifizierungstelle StartSSL

Als letzten Schritt auf dem Weg zur Owncloud-Installation muss der Apache-Webserver für die Verarbeitung von .htaccess vorbereitet und zwei Apache-Module aktiviert werden.

Zunächst die Verarbeitung von .htaccess-Dateien:

sudo vi /etc/apache2/sites-available/owncloud

Inhalt des Konfigurations-Datei:

Inhalt Konfigurationsdatei

Durch den folgenden Befehle wird der Apache-Webserver über die Aktivierung der Website informiert:

sudo a2ensite owncloud

Nun werden noch die beiden Apache-Module aktiviert:

sudo a2enmod headers rewrite

Zum Abschluss wird der Apache-Webserver einmal neu gestartet:

sudo service apache2 restart

Jetzt kann mit dem Installationsprozess von Owncloud begonnen werden. Dabei gibt es zwei verschiedene Wege: Installation über das Terminal oder über das Ubuntu Software Center. In der nachfolgenden Bildergalerie wird die Installation über das Software Center gezeigt. Die Befehle für das Terminal lauten:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud

Falls es beim Installationsprozess zu Problemen bezüglich der Rechteverwaltung auf der virtuellen Festplatte kommt, hilft eventuell ein Blick in diesen oder jenen Foreneintrag.

Weitere Informationen:

Fernwartung eines Linux-Systems über RDP [(Windows-) Remote Desktop Protocol] durch XRDP

mntechblog.de – LAMP Installation

http://forum.ubuntuusers.de/

http://wiki.ubuntuusers.de/MySQL

Upload von großen Dateien Owncloud

Das Ubuntu Logo ist Eigentum der Canonical Ltd.