Exemplet nedan tillämpas på domänen: demo.se
Starta med att installera Apache2 och OpenSSL. Är detta redan gjort - skippa momentet:
Kod: Markera allt
sudo apt-get install apache2 openssl
Kod: Markera allt
sudo mkdir /etc/apache2/ssl/
Kod: Markera allt
cd /etc/apache2/ssl/
Först skapar vi ett publikt/privat nyckelpar som används för att kryptera trafiken - höggradig kryptering (AES-256 256 bit).
Kod: Markera allt
sudo openssl genrsa -out demo.se.key 1024
Skapa ett certifikat
Ett certifikat är en validerad publik nyckel. Den används av servern för att visa sin identitet för webbläsaren. Certifikatet måste först validereras genom att det signeras - antingen av oss själva eller en betrodd certifikatsutfärdare "Certificate Authority". I denna handledning inskränker vi oss till att skapa ett självsignerat certifikat.
Kod: Markera allt
sudo openssl req -new -key demo.se.key -x509 -days 365 -nodes -out demo.se.crt
Certifikatet finns nu i filen /etc/apache2/ssl/demo.se.crt
Installera certifikatet
Från den färska installationen av Apache2 skapar vi en ny virtuell host genom att kopiera default och ge den namnet ssl.
Kod: Markera allt
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Kod: Markera allt
sudo ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl
Kod: Markera allt
sudo a2ensite ssl
Kod: Markera allt
gksudo gedit /etc/apache2/sites-available/ssl
...................................................
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@localhost
Servername demo.se
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/demo.se.crt
SSLCertificateKeyFile /etc/apache2/ssl/demo.se.key
DocumentRoot /var/www/
.
.
.
osv.
</virtualhost>
...................................................
Öppna /etc/apache2/ports.conf
Kod: Markera allt
gksudo gedit /etc/apache2/ports.conf
"Ladda SSL-motorn"
Kod: Markera allt
sudo a2enmod ssl
Kod: Markera allt
gksudo gedit /etc/apache2/sites-available/default
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername demo.se
DocumentRoot /var/www/
.
.
.
osv.
</virtualhost>
...................................................
Kontrollera certifikatet
För att slippa att Apache klagar på att domänen inte är fullvärdig gör vi ett tillägg i hosts:
Kod: Markera allt
gksudo gedit /etc/hosts
Vi ska också kontrollera en rad på sidan /etc/apache2/sites-available/ssl. Öppna denna:
Kod: Markera allt
gksudo gedit /etc/apache2/sites-available/ssl
RedirectMatch ^/$ /apache2-default/ ska se ut så här. Den får inte inledas med "brädgård" #
Starta om datorn.
Provkör
Surfa nu till https://demo.se. Först dyker en varning upp men gå vidare och ..."It works!" Vid läsarens adressfält finns ett hänglås. Klicka på det och se uppgifter om ditt certifikat.
Betrodda certifikatsutfärdare
I vårt fall signerade vi själva certifikatet. Det duger bra speciellt om vi bara är ute efter att kryptera trafiken. Vill vi däremot att besökare till webbplatsen ska få ett kvitto på att de kommit till rätt server kanske det kan det vara idé att köpa ett certifikat. Med vårt självsignerade certifikat får besökaren upp en varning i webbläsaren och får då själv avgöra om att fortsätta. Det är en olägenhet, men kan mildras om besökaren väljer att importera certifikatet i sin webbläsare. När detta är gjort slipper man varningen fortsättningsvis.
Att få ett certifikat signerat av en kommerciell utfärdare kostar någon 100 - 1000 lapp. Det billigaste jag kunnat hitta är ett RapidSSL certifikat på 14 USD/1 år (alt. 11 USD/3år). Fungerar helt ok för en privat webbplats, som inte har alltför hög trafik; http://www.revolutionhosting.net/certif ... pidssl.php
Vill man gå en medelväg mellan självsignerat och kommerciellt kan man besöka http://www.cacert.org och registrera sig för att skapa sina certifikat.