Archive

Posts Tagged ‘apache’

Sette opp Apache med mod_ssl

August 24th, 2008

hengelås

Jeg har lenge hatt en webmail-løsning (SquirrelMail), men denne har vært helt ukryptert. Derfor tenkte jeg at det var på tide å sette den opp med SSL, for litt bedre sikkerhet. Fikk det til slutt til, og har skrevet en liten guide til meg selv, som jeg har pusset litt på og lagt ut her, forhåpentligvis til nytte for andre.

Dette er gjort med Apache2 på Debian 4.0 (Etch), men bør funke bra på andre distroer også.

openssl må være installert.

Først må man lage seg et sertifikat. Det kan gjøres med denne kommandoen :

openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Dette forteller at man vil lage et sertifikat etter X.509-standarden, med varighet på 365 dager. Sertifikatet blir lagret i fila /etc/apache2/apache.pem.

Videre legger man til en virtualhost med domenet man ønsker at skal være “SSL-enabled”. Det er lurest å lagre dette i en egen fil under /etc/apache2/sites-available. Kall den f.eks “ssl”.

NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/apache.pem
ServerAdmin webmaster@domene.com
DocumentRoot /var/www/ssl-site
ServerName ssl-site.domene.com
</VirtualHost>

Merk at man må ha med options “SSLEngine” og “SSLCertificateFile” for at det skal virke. SSLCertificateFile må pekes til en gyldig sertifikatfil (som vi lagde tidligere).

Når virtualhost-fila er laget, er det på tide å enable den. Enten kan man gjøre det enkelt, ved å skrive “a2ensite ssl”, eller så kan man gjøre det vanskelig, og skrive “ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/999-ssl” (tallet forteller bare i hvilken rekkefølge konfigurasjonsfilene leses inn). Jeg gjorde det vanskelig helt til jeg oppdaget at det faktisk fantes en kommando som gjorde det enkelt..

Når man har gjort dette, bør man også endre andre virtualhosts så man har en “NameVirtualHost *:80″, og forandre “<VirtualHost *>” til “<VirtualHost *:80>” alle steder man skal ha vanlig http. Selv endte jeg opp med å ha en konfigurasjonsfil for http-virtualhosts, og en annen for https-virtualhosts.

Nå kan man besøke sin nye SSL-side i en browser. Du skal få en advarsel om at sertifikatet ikke er til å stole på. Dette er fordi det er “self signed”, og altså ikke signert av en autoritet på området. Om man vil ha et “skikkelig” sertifikat, er man nødt til å kjøpe det fra VeriSign, Thawte eller lignende.

Selv om sertifikatet er selvsignert, er det like sikkert som et “skikkelig” et, dog. Man har bare ikke betalt for verifikasjon på at det er ekte.

sokkalf GNU/Linux , , ,