Apache mit SSL einrichten unter Ubuntu

| 1 Kommentar

In dieser kurzen Anleitung beschreibe ich wie man einen Apache Webserver HTTPS-fähig bekommt, um damit wärend der Entwicklung lokal zu testen. Wenn ihr das auf euren Produktivsystemen macht, dann auf eigene Gefahr!

Zertifikat erzeugen

Zuerst erzeugen wir ein Zertifikat. Sollte schon eins vorhanden sein, kann der Punkt übersprungen werden.

Auf meiner Entwicklungsmaschine lege ich die Zertifikate einfach bei der Apache Konfiguration in /etc/apache2/certs ab. In dem Beispiel erstelle ich mit openssl den Key für ebene7.local, ihr solltet da euren Hostnamen einsetzen.

sudo mkdir -p /etc/apache2/certs
cd /etc/apache2/certs
sudo openssl genrsa -out ebene7.local.key 1024

Das passende Zertifikat lässt sich fast genauso schnell erzeugen. Jetzt müssen nur noch ein paar Daten eingegeben werden.

sudo openssl req -new -key ebene7.local.key -out ebene7.local.csr

Wenn ihr die Daten zur Kontrolle nochmal sehen wollt, dann geht das mit diesem Befehl.

openssl req -noout -text -in ebene7.local.csr

Zum Abschluß wird das Zertifikat noch signiert und kann danach verwendet werden.

sudo openssl x509 -req -days 365 -in ebene7.local.csr
 -signkey ebene7.local.key -out ebene7.local.crt

Konfiguration Apache

Damit der Apache überhaupt etwas mit der Zertifikaten und Anfragen anfangen kann, müssen wir noch mod_ssl aktivieren. Dafür können wir selber die Symlinks setzen oder wir machen uns das Leben einfacher.

sudo a2enmod ssl

Noch lauscht unser Apache warscheinlich nur auf Port 80 und wir müssen ihm evtl. noch sagen, dass auch Anfragen über Port 443 kommen können. Die Konfiguration liegt in /etc/apache2/ports.conf und ist auf meinem System schon dafür vorbereitet.

<IfModule mod_ssl.c>
   Listen 443
</IfModule>

In diesem Fall muss hier nichts weiter gemacht werden. Damit alle Änderungen wirksam werden, müssten wir jetzt eigentlich den Server neu starten. Vorher kümmern wir uns aber noch schnell um unsere virtuelle Host Konfiguration.

Konfiguration des virtuellen Host

Dazu kopiere ich einfach die aktuelle Konfiguration und passe diese dann an.

cd /etc/apache2/sites-available
sudo cp ebene7.local ssl.ebene7.local
sudo pico ssl.ebene7.local

Nachdem das geschehen ist, sollte die Datei ungefähr so aussehen:

<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /etc/apache2/certs/ebene7.local.crt
  SSLCertificateKeyFile /etc/apache2/certs/ebene7.local.key

  ServerName ebene7.local

  DocumentRoot /var/www/ebene7.local/
</VirtualHost>

Damit die neue Konfiguration wirksam wird müssen wir diese noch aktivieren und den Server neu starten.

sudo a2ensite ssl.ebene7.local
sudo service apache2 restart

Das war es dann auch schon. Nun sollte die Seite auch verschlüsselt ausgeliefert werden.

Ein Kommentar

  1. Funktioniert wenn in der Virtualhost-Section aus apache apache2 wird! Danke!

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Schlagwörter: A/B-Test, AbstractType, Adapter, AddOn, Administration, Ajax, Alühn, Alühn2, Amazon, Animation, Annotations, Anonyme Klasse, Ant, Apache, API, Array, ArrayAccess, Attachment, Auftrag, Ausbildung, Auswertung, Authentifizierung, AutoLoader, AWS, Backup, Bedienung, Bedingung, Benchmark, Berechtigung, Berlin, Bildbearbeitung, Bildschirmfoto, Blog, Blogroll, BOM, Bootstrap, Bot, Browser, Bugtracker, Byte Order Mark, Bücher, Cache, CakePHP, Call-Center, Callback, CamelCase, Canvas, Captcha, CDN, Cheatsheet, CLI, Clickout, Closure, Cloud, CodeSniffer, Collection, Community, Comparator, Config, Contest, Controller, Converter, CouchDB, Countable, Cronjob, CRUD, CSS, CSV, CustomLibrary, Custom_Model, Daemon, Data Mapper, Datei, Datenbank, Datensicherung, Datenstruktur, Datentypen, Dating, Datum, Debug, Decorator, Dekorierer, Design, Design Patterns, Doctrine, Dokumentation, Dump, Duplikat, each, EC2, Eclipse, Email, Entwicklung, Entwurfsmuster, Enum, Erweiterung, Event, Eventhandling, Exception-Handling, Extension, Facebook, Factory, Fallback, Fehler, Fehlermeldung, Filter, Firefox, Flash, flexigrid, Foreach, Formatierung, Formular, Framework, FTP, Funktion, Futon, ga:pi(), Getter, Gnome, Google Analytics, Hash, Hash-Bang, Header, htaccess, HTML5, htpasswd, HTTP, HTTPS, IDE, If, Implementierung, InnoDB, Interceptor, Interface, Internet Explorer, isset, Iterator, Java, JavaScript, Job, jQuery, Kommentar, Konfiguration, Konsole, Kontrollstruktur, kopieren, kostenlos, Kundenbetreuung, Late Static Binding, Layout, Links, Linux, Listeners, Lizenz, Logging, Löschen, Magento, Magic Methods, Manual, ManyToMany, Marketing, Methode, Model, Monolog, MVC, MySQL, NetBeans, Network, Nirvanix, Objekt, Observable, Observer, OneToMany, Online Tool, OOP, Open Source, Operator, OR-Mapper, Order, ORM, O’Reilly, Parameter, Partnersuche, Passwort, Performance, PHP, php.ini, PHP hates me, phpMyAdmin, PHPUnit, Plugin, Point and Click, Popup, Praktikum, Proxy, Prüfsumme, Prüfung, QR-Code, Qualitätssicherung, Query, Queue, Redesign, Refactoring, Reflection, Repository, Request, Response, Responsive Design, Rest-API, Rockstar, Rollback, Routing, S3, Samba, Scheifen, Schleife, Schutz, Screenshot, Secure Shell, Selbstreferenz, Server, Setter, setTimeout, Shop, Sicherheit, Sicherung, Sichtbarkeit, Singleton Pattern, Skin, SOAP, Social Network, Software, Sortierung, Sourcecode, Spam, Speicherproblem, Spickzettel, SPL, Splittest, SSH, SSL, Stammtisch, Statement, static, Statistik, Status, Stellvertreter, Strategy Pattern, Stream, String, Stuttgart, Stylesheet, Subversion, Sun VirtualBox, Support, SVN, Switch, Symfony, Symfony2, Symfony Live, Tag, Template, Template Method, Ternär Operator, Testing, Theme, Thumbnail, Tool, Tour, Tracking, Twig, Twitter, Type-Cast, Ubuntu, Umwandlung, Underscore, unset, Update, Upload, Url, User Story, Validierung, Vererbung, Versionskontrolle, Versionsnummer, Verzweigung, Video, Videospiel, Virtualisierung, Visitor Pattern, Vorschaubild, walk, Warteschlange, Webserver, Webservice, Weiterleitung, Werkzeug, Windows, WindowsAzure, WordPress, Wrapper, Writer, XML, Youtube, Zeitschleife, Zeitsteuerung, Zend Framework, Zend_Application, Zend_Cloud, Zend_CodeGenerator, Zend_Http_Client, Zend_Reflection, Zend_Service, ZPress, Zugangskontrolle, Zugriffsmethode