Apache ja HTTPS

Linux.fista
Versio hetkellä 12. joulukuuta 2006 kello 06.18 – tehnyt Epeli (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Otetaan käyttöön SSL-salaus käyttöön Apachen kanssa. Oletaan, että Apache2 on asennettuan järjestelmään. Ohje testattu Ubuntun kanssa.

Sertifikaatti

Aloitetaan luomalla sertifikaatti joka on voimassa halutun ajan.

sudo apache2-ssl-certificate -days 365

Vastaile tuleviin kysymyksiin.

Aktivoidaan SSL-moduuli

sudo a2enmod ssl

Asetetaan Apache kuuntelemaan oikeaa porttia

Lisää tiedostoon /etc/apache2/ports.conf rivi:

Listen 443

443 on https:n oletus portti.

SSL-suojatuille sivuille omat asetukset

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Lisää näille kahdelle ensimmäiselle riville porttinumerot.

NameVirtualHost *:443
<virtualhost *:443>

Ja laita <virutalhost *:443>-tagin sisään rivit:

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

Aktivoidaan asetukset.

sudo a2ensite ssl

Lopuksi käynnistetään Apache uusiksi, jotta kaikki muutokset tulevat voimaan.

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

Nyt salaus pitäisi tulla käyttöön, kun sivuille mennään https-alkuisella osoitteella http:n sijaan.

Mod rewrite

Nyt käyttäjä pystyy valitsemaan käyttääkö hän salausta vai ei. Usein halutaan pakottaa käyttäjä käyttämään salattua yhteyttä. Se onnistuu Mod rewritella.

Aktoivoidaan taas oikea moduuli.

sudo a2enmod rewrite

Muokataan tiedostoa /etc/apache2/sites-available/default lisäämällä <VirtualHost *>-tagin sisään:

RewriteEngine   on
RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^/salainen(.*)$ https://%{SERVER_NAME}/salainen$1 [L,R]
RewriteLog      "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

Nyt http://domain.com/salainen/ ohjautuu automaattisesti SSL-salattuun yhteyteen http://domain.com/salainen/. Jos haluat kaikki sivut SSL-salauksen alle voit jättää edelliseen hakemiston kohdalle pelkästään /:n. Eli jätä vain sana "salainen" pois.

Muutokset tulevat voimaan käynnistämällä Apache uusiksi.

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

Linkkejä