Startsidan Teknikblogg Linux SSL (https) på Apache och Ubuntu

SSL (https) på Apache och Ubuntu

Att kunna surfa med SSL (https) till en Apache på Ubuntu med egentillverkat certifikat.

Har du ingen webserver att labba med kan du lätt installera en virtuell maskin.

Om du inte har installerat Apache på din maskin så gör det med kommandot:

sudo apt-get install apache2

Gå till /etc/apache2/mods-available mappen och kolla vilka moduler du har tillgängliga. Ändra sen till /etc/apache2/mods-enabled för att se vilka som är påslagna.

cd /etc/apache2/mods-available
ls
cd /etc/apache2/mods-enabled
ls

Installera SSL. Detta görs genom att aktivera ssl o mods-available med kommandot:

sudo a2enmod ssl
sudo /etc/apache2/init.d/apache2 force-reload

Skapa en enkel hemsida för att kunna testa senare.

cd /var/www
sudo vim index.html

(om du inte har vim installerat så kan du köra apt-get install vim)

Lägg till följande text:
<html>
<head>
<title>En testsida,</title>
</head>
<body>
<p>Hej och sånt!</p>
</body>
</html>

Spara och surfa till datorn
http://IP_adressen_för_servern

Nu skall vi kryptera trafiken till och från hemsida.

Skapa krypteringsnycklarna

cd /etc/apache2
sudo openssl genrsa -des3 -out server.key 1024

Använd den skapade nyckeln för att skapa en certifikatförfrågan

sudo openssl req -key server.key -out server.csr

Du kommer att få svara på några frågor. Använd fantasin. Glöm inte att skriva ner din "passphrase".
Använd förfrågan för att skapa ett egnesignerat certifikat (förfrågan skulle kunna användas till att köpa ett certifikat).

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

Installera nyckel och certifikat.

sudo cp server.crt /etc/ssl/certs/ 
sudo cp server.key /etc/ssl/private/

Öppna "default" filen för editering.

cd /etc/apache2/sites-available
sudo vim default-ssl

Filen är nästan färdig men du måste avkommentera SSLOption raden och ändra SSLCertificate raden så den stämmer överens med din site.

SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Port 443 är redan klar att användas.
Sätt igång "default SSL site".

sudo a2ensite default-ssl

Om du inte sätter igång default-ssl får du felmedelandet:
“ssl_error_rx_record_too_long apache”

Starta om Apache:

sudo /etc/init.d/apache2 restart

Prova att surfa till:
https://IP_adressen_för_servern

Obs! Vill du inte få felmeddelande om att certifikatet pekar till fel adress så måste du skriva in sammma adress du surfar till i common_name i cert förfrågan.

Vill du inte att certifikatet skall ge felmeddelande att det inte är utfärdat av pålitlig CA måste du köpa ett certifikat eller konfigurera surfmaskin att lita på certifikatet.
Detta brukar man kunna lösa redan i vald webbläsare i de flesta OS.