HTTPS und der Apache Webserver

In diesem Tutorial wird beschrieben wie ein schon bestehendes Zertifikat in den Apache Webserver integriert wird.

Vorbereitungen

Um SSL zu nutzen, muss das entsprechende Modul aktiviert werden:

a2enmod ssl

Damit HTTPS Anfragen entgegen nehmen kann, muss der entsprechende Port geöffnet werden.
Dazu fügen wir folgende Zeile der „ports.conf“ hinzu:

Listen 443

VirtualHost Eintrag

Nun müssen wir noch den VirtualHost eintrag anpassen.
Folgend ein Beispiel:

<VirtualHost *:443>
	ServerName example.com
	ServerAdmin webmaster@example.com
	
	DocumentRoot /var/www
	<Directory /var/www>
		Order allow,deny
		allow from all
	</Directory>
	
	ErrorLog ${APACHE_LOG_DIR}/error.log
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
	SSLEngine On
	SSLProtocol all -SSLv2 -SSLv3
	SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	SSLCertificateFile /etc/apache2/ssl/example.com.crt
	SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
</VirtualHost>

Damit die Webseite nur noch über HTTPS erreichbar ist, können folgende Zeilen in der .htaccess Datei hinzugefügt werden:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]