Ero sivun ”Apache ja HTTPS” versioiden välillä

Siirry navigaatioon Siirry hakuun
413 merkkiä lisätty ,  15. lokakuuta 2007
siistintää
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.  


====Sertifikaatti====
==Varmenne==
Aloitetaan luomalla sertifikaatti joka on voimassa halutun ajan.
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
Vastaile tuleviin kysymyksiin.
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? -->


=====Debian Etch ja uudemmat=====
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-sertifikaattikomentoa ei löydy uudemmista Debianeista, eikä siihen liittyvää konfiguraatiotiedostoa tai kohdehakemistoa. Ja suurin osa apache2-ssl-certificate-komennoista ei muutenkaan tue mitään vipuja. Helpointa on luoda komentotiedosto itse:
   #!/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ä Sargen-tiedostoa on muutettu lisäämällä -days 365 vipu komentoon ja korjattu config-tiedoston polku. Config-tiedoston oletetaan löytyvän samasta hakemistosta kuin skriptankin. Config-tiedoston sisällä voisi olla vaikka:
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 annettava root:in haltuun. Tämän tiedoston ajamisen jälkeen tämän sivun ohjeen pitäisi toimia myös uudemmissa Debian-pohjaisissa jakeluissa.
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>).


====Aktivoidaan SSL-moduuli====
==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:
====Asetetaan Apache kuuntelemaan oikeaa porttia====
Lisää tiedostoon '''/etc/apache2/ports.conf''' 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:
====SSL-suojatuille sivuille omat asetukset====
  cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
  cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Lisää nyt luotuun tiedostoon ( '''/etc/apache2/sites-available/ssl''' ) kahdelle ensimmäiselle riville porttinumerot tähän tapaan:
#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>
Ja laita <virtualhost *:443>-tagin sisään rivit:
#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.
Lopuksi käynnistetään Apache uusiksi, 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.


====Mod rewrite====
==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 Mod rewritella.
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 '''/etc/apache2/sites-available/default''' lisäämällä <VirtualHost *>-tagin sisään:
#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]]

Navigointivalikko