Ik ga ervan uit dat Apache2 al geinstalleerd is, zodat SSL toegevoegd kan worden voor een HTTPS verbinding. Ook genereer ik zelf de certificaten en zijn dus niet officieel.
Kijk welke Apache modules er al geinstalleerd staan in de volgende directory:
$ cd /etc/apache2/mods-available
$ ls
Ook kun je kijken welke er hiervan actief zijn in:
$ cd /etc/apache2/mods-enabled
$ ls
Nu eerst zorgen dat we root rechten krijgen met:
$ sudo -i
Bij mijn Ubuntu installatie werd de ssl module niet standaard geactiveerd, maar dat kun je doen met:
$ a2enmod ssl
Laad de module nu Apache met:
$ /etc/init.d/apache2 force-reload
Genereer nu de webserver key en certificaat en vul de gevraagde gegevens en paswoord in:
$ cd /etc/apache2
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
Let op! Op dit moment is de key beveiligd met een paswoord (pass phrase). Dat betekent dat bij het herstarten van de server of het apache2 proces, altijd dit paswoord gegeven moet worden. Dus ook na bijvoorbeeld spanningsuitval en een automatische herstart. Voor thuis gebruik kan ook met het volgende commando het paswoord verwijderd worden uit de key:
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
Installeer nu de key en certificaat:
$ cp server.crt /etc/ssl/certs/
$ cp server.key /etc/ssl/private/
Ga naar de sites-available directory en wijzig de default-ssl instellingen. Alle instellingen staan er al in en hoeven alleen maar aangepast of uncommented gemaakt te worden:
$ cd /etc/apache2/sites-available
$ vi default-ssl
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Enable de default-ssl site met:
$ a2ensite default-ssl
Herstart Apache:
$ /etc/init.d/apache2 restart