4 175
muokkausta
pEi muokkausyhteenvetoa |
(siistintää) |
||
Rivi 1: | Rivi 1: | ||
[[HTTPS]]-protokolla mahdollistaa verkkoliikenteen salaamisen [[wikipedia:fi:ssl|SSL]]-yhteyskäytännöllä. Tässä oppaassa otetaan käyttöön [[Apache]]n HTTPS-tuki. | [[HTTPS]]-protokolla mahdollistaa verkkoliikenteen salaamisen [[wikipedia:fi:ssl|SSL]]-yhteyskäytännöllä. Tässä oppaassa otetaan käyttöön [[Apache]]n HTTPS-tuki. | ||
==== | ==Varmenne== | ||
Aloitetaan luomalla | SSL-salausta käytettäessä tarvitaan varmenne (sertifikaatti). Varmenteen avulla käyttäjä voi paremmin selvittää, minkä palvelimen kanssa verkossa todellisuudessa asioi. | ||
Aloitetaan luomalla varmenne, joka on voimassa halutun ajan. Vanhemmissa järjestelmissä tämä onnistuu komennolla | |||
apache2-ssl-certificate -days 365 | apache2-ssl-certificate -days 365 | ||
ja vastaamalla kysymyksiin. | |||
* Harkinnassa voisi olla read-only slaven tekeminen varsinaisesta koneesta. | <!-- * Harkinnassa voisi olla read-only slaven tekeminen varsinaisesta koneesta. | ||
-- Mitä tämä tarkoittaa? --> | |||
Uudemmissa järjestelmissä komentoa <tt>apache2-ssl-certificate</tt> tai siihen liittyvää asetustiedostoa ei löydy. Tällöin on parasta luoda varmennetiedosto itse seuraavalla [[Bash-skriptaus|skriptillä]]: | |||
apache2-ssl-certificate | |||
#!/bin/sh -e | #!/bin/sh -e | ||
if [ "$1" != "--force" -a -f /etc/apache2/ssl/apache.pem ]; then | if [ "$1" != "--force" -a -f /etc/apache2/ssl/apache.pem ]; then | ||
Rivi 17: | Rivi 19: | ||
shift | shift | ||
fi | fi | ||
echo | [[echo]] | ||
echo creating selfsigned certificate | echo creating selfsigned certificate | ||
echo "replace it with one signed by a certification authority (CA)" | echo "replace it with one signed by a certification authority (CA)" | ||
Rivi 27: | Rivi 29: | ||
# use special .cnf, because with normal one no valid selfsigned | # use special .cnf, because with normal one no valid selfsigned | ||
# certificate is created | # certificate is created | ||
export RANDFILE=/dev/random | [[export]] RANDFILE=/dev/random | ||
openssl req $@ -config ssleay.cnf \ | [[openssl]] req $@ -config ssleay.cnf \ | ||
-new -x509 -nodes -out /etc/apache2/ssl/apache.pem \ | -new -x509 -nodes -out /etc/apache2/ssl/apache.pem \ | ||
-keyout /etc/apache2/ssl/apache.pem -days 365 | -keyout /etc/apache2/ssl/apache.pem -days 365 | ||
chmod 600 /etc/apache2/ssl/apache.pem | [[chmod]] 600 /etc/apache2/ssl/apache.pem | ||
ln -sf /etc/apache2/ssl/apache.pem \ | [[ln]] -sf /etc/apache2/ssl/apache.pem \ | ||
/etc/apache2/ssl/`/usr/bin/openssl \ | /etc/apache2/ssl/`/usr/bin/openssl \ | ||
x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0 | x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0 | ||
Tässä alkuperäistä | Tässä alkuperäistä varmenteen luovaa skriptiä on muutettu lisäämällä valitsin <tt>-days 365</tt> ja korjattu asetustiedoston polku. Huomaa, että joissain järjestelmissä Apachen asetustiedoston polku saattaa olla jokin muu kuin <tt>/etc/apache2</tt>. | ||
Skripti tarvitsee asetustiedoston, joka on samassa hakemistossa kuin itse skripti ja jonka tiedostonimi on <tt>ssleay.cnf</tt>. Tiedoston sisällön tulee olla kutakuinkin seuraava: | |||
# | # | ||
# SSLeay example configuration file. | # SSLeay example configuration file. | ||
Rivi 62: | Rivi 66: | ||
emailAddress_max = 40 | emailAddress_max = 40 | ||
Tämän lisäksi hakemisto /apache2/ssl on luotava ja | Tämän lisäksi hakemisto <tt>/etc/apache2/ssl</tt> on luotava ja sen omistajaksi on asetettava pääkäyttäjä (<tt>chown root /etc/apache2/ssl</tt>). | ||
==== | ==SSL:n käyttöönotto == | ||
#Ladataan Apachen SSL-moduuli | |||
a2enmod ssl | a2enmod ssl | ||
#Asetetaan Apache kuuntelemaan oikeaa porttia lisäämällä tiedostoon <tt>/etc/apache2/ports.conf</tt> rivi: | |||
Listen 443 | Listen 443 | ||
443 on [[wikipedia:fi:https|https:n]] oletus portti. | :443 on [[wikipedia:fi:https|https:n]] oletus portti. | ||
#Asetetaan SSL-suojatuille sivuille omat asetukset. Kopioidaan asetustiedoston pohja: | |||
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl | cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl | ||
#Lisätään nyt luotuun tiedostoon (<tt>/etc/apache2/sites-available/ssl</tt>) kahdelle ensimmäiselle riville porttinumerot tyyliin | |||
NameVirtualHost *:443 | NameVirtualHost *:443 | ||
<virtualhost *:443> | <virtualhost *:443> | ||
#Lisätään <virtualhost *:443>-tagin sisään rivit: | |||
SSLEngine On | SSLEngine On | ||
SSLCertificateFile /etc/apache2/ssl/apache.pem | SSLCertificateFile /etc/apache2/ssl/apache.pem | ||
Aktivoidaan asetukset | #Aktivoidaan asetukset: | ||
a2ensite ssl | a2ensite ssl | ||
#Käynnistetään lopuksi Apache uudelleen, jotta kaikki muutokset tulevat voimaan. | |||
apache2ctl restart | apache2ctl restart | ||
Nyt salaus pitäisi tulla käyttöön, kun sivuille mennään https-alkuisella osoitteella http:n sijaan. | Nyt salaus pitäisi tulla käyttöön, kun sivuille mennään https-alkuisella osoitteella http:n sijaan. | ||
== | ==Salauksen käyttöpakko== | ||
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 | 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 rewrite-moduulilla. | ||
Aktoivoidaan taas oikea moduuli. | #Aktoivoidaan taas oikea moduuli. | ||
a2enmod rewrite | a2enmod rewrite | ||
Muokataan tiedostoa | #Muokataan tiedostoa <tt>/etc/apache2/sites-available/default</tt> lisäämällä <VirtualHost *>-tagin sisään: | ||
RewriteEngine on | RewriteEngine on | ||
RewriteCond %{SERVER_PORT} ^80$ | RewriteCond %{SERVER_PORT} ^80$ | ||
Rivi 107: | Rivi 108: | ||
*[http://forum.ubuntu-fi.org/index.php?topic=7213.0 Keskustelua tästä Ubuntu-fi:n foorumilla.] | *[http://forum.ubuntu-fi.org/index.php?topic=7213.0 Keskustelua tästä Ubuntu-fi:n foorumilla.] | ||
*[http://forum.ubuntu-fi.org/index.php?topic=313.0 Ohje Apache-palvelimen asennukseen Ubuntuun.] | *[http://forum.ubuntu-fi.org/index.php?topic=313.0 Ohje Apache-palvelimen asennukseen Ubuntuun.] | ||
[[Luokka:Apache]] | [[Luokka:Apache]] | ||
[[Luokka:Ohjeet]] | [[Luokka:Ohjeet]] | ||
[[Luokka:Opetusmateriaalit]] | [[Luokka:Opetusmateriaalit]] |