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

Siirry navigaatioon Siirry hakuun
552 merkkiä lisätty ,  21. marraskuuta 2020
p
Ironista.
(siistintää)
p (Ironista.)
 
(9 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä)
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==
==Varmenne==
Rivi 6: Rivi 6:
Aloitetaan luomalla varmenne, joka on voimassa halutun ajan. Vanhemmissa järjestelmissä tämä onnistuu komennolla
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
Uudemmissa järjestelmissä komentoa <tt>apache2-ssl-certificate</tt> tai siihen liittyvää asetustiedostoa ei löydy. Ainakin Ubuntu 12.04 voi siinä tapauksessa käyttää komentoa:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
ja vastaamalla 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? -->
-- Mitä tämä tarkoittaa? -->
 
Muuten on parasta luoda varmennetiedosto itse seuraavalla [[Bash-skriptaus|skriptillä]]:
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ä]]:
<source lang="bash">
   #!/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 19: Rivi 21:
     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 29: Rivi 31:
   # 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
</source>


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>.
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:
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:
<source lang="bash">
   #
   #
   # SSLeay example configuration file.
   # SSLeay example configuration file.
Rivi 65: Rivi 69:
   emailAddress                    = Sähköpostiosoite
   emailAddress                    = Sähköpostiosoite
   emailAddress_max                = 40
   emailAddress_max                = 40
</source>


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>).
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 ==
==SSL:n käyttöönotto ==
#Ladataan Apachen SSL-moduuli
*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ää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]] oletusportti.
#Asetetaan SSL-suojatuille sivuille omat asetukset. Kopioidaan asetustiedoston pohja:
*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
*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:
*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:
'''Tai''' vaihtoehtoisesti käytettäessä uudempaa Ubuntu 12.04:n kanssa toimivaa komentoa
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
*Aktivoidaan asetukset:
  a2ensite ssl
  a2ensite ssl
#Käynnistetään lopuksi Apache uudelleen, jotta kaikki muutokset tulevat voimaan.
*Käynnistetään lopuksi Apache uudelleen, jotta kaikki muutokset tulevat voimaan.
  apache2ctl restart
  apache2ctl restart


Rivi 92: Rivi 101:
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.
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 <tt>/etc/apache2/sites-available/default</tt> lisäämällä <VirtualHost *>-tagin sisään:
*Muokataan tiedostoa <tt>/etc/apache2/sites-available/default</tt> lisäämällä <VirtualHost *>-tagin sisään:
<source lang="bash">
  RewriteEngine  on
  RewriteEngine  on
  RewriteCond    %{SERVER_PORT} ^80$
  RewriteCond    %{SERVER_PORT} ^80$
Rivi 100: Rivi 110:
  RewriteLog      "/var/log/apache2/rewrite.log"
  RewriteLog      "/var/log/apache2/rewrite.log"
  RewriteLogLevel 2
  RewriteLogLevel 2
</source>
Nyt http://www.example.com/salainen/ ohjautuu automaattisesti SSL-salattuun yhteyteen https://www.example.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.  
Nyt http://www.example.com/salainen/ ohjautuu automaattisesti SSL-salattuun yhteyteen https://www.example.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.
Muutokset tulevat voimaan käynnistämällä Apache uusiksi.
  apache2ctl restart
  apache2ctl restart
== Katso myös ==
* [[HST]] - Henkilökortti ja varmenteet.


==Aiheesta muualla==
==Aiheesta muualla==
*[http://forum.ubuntu-fi.org/index.php?topic=7213.0 Keskustelua tästä Ubuntu-fi:n foorumilla.]
*[https://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.]
*[https://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]]
[[Luokka:Tietoturva]]
1 122

muokkausta

Navigointivalikko