Windows, Apache, Monta sivustoa, SSL-salaus ja sivun suojaus

eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Windows, Apache, Monta sivustoa, SSL-salaus ja sivun suojaus

Viesti Kirjoittaja eero »

Ohje perustuu siihen, että olet ladannut ja asentanut Apache:sta ssl-version

http://www.apachelounge.com/download/ httpd-2.2.11-win32-x86-ssl.zip

ASENNETAAN MONTA SIVUSTOA

Avaa C:\Apache2\conf\httpd.conf
Poista kommenttimerkki riviltä Include conf/extra/httpd-vhosts.conf

Luodaan kansiot ekadomain ja tokadomain kansioon C:\Apache2\htdocs

Avaa C:\Apache2\conf\extra\httpd-vhosts.conf
Lisää:

Koodi: Valitse kaikki

<VirtualHost *:80>
    ServerAdmin eero.lehtinen@poytya.fi
    DocumentRoot "C:/Apache2/htdocs/ekadomain"
    ServerName ekadomain.org
    ErrorLog "logs/ekadomain-error.log"
    CustomLog "logs/ekadomain-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin eero.lehtinen@poytya.fi
    DocumentRoot "C:/Apache2/htdocs/tokadomain"
    ServerName tokadomain.org
    ErrorLog "logs/tokadomain-error.log"
    CustomLog "logs/tokadomain-access.log" common
</VirtualHost>
Käynnistä apache uusiksi.

ASENNETAAN SSL-SALAUS

Kopioi ssleay32.dll ja libeay32.dll kansiosta C:\Apache2\bin C:\Windows\system32 kansioon.

Lataa openssl ja pura se kansioon C:\openssl\bin
Openssl-0.9.7e-Win32.zip
OpenSSL
(841.69 KiB) Tiedosto ladattu 966 kertaa
Kopioi kansiosta C:\Apache2\conf openssl samaan kansioon kuin purit openssl:n eli kansioon C:\openssl\bin

Luodaan sertifikaatti

Avaa komentorivi ja siirry hakemistoon c:\openssl\bin
Anna komento openssl req -config openssl.cnf -new -out server.csr
  • Anna salasana kahteen kertaan
    Anna maatunnus fi
    Anna läänin nimi Varsinais-suomi
    Anna kaupungin nimi Turku
    Anna organisaation nimi Koti
    Anna organisaatioyksikön nimi Olkkari
    Anna Common Name. Tämän pitää olla web-sivustosi tarkka osoite. Sertifikaatti tulee tälle nimelle. Jos sertifikaatti on eri nimellä tulee valitus. tokadomain.org
    Anna sähköpostiosoiteesi koti.osoite@testidomain.fi
    Anna salasana. Voi olla sama kuin ylhäällä
Anna komento openssl rsa -in privkey.pem -out server.key
Anna sama salasana kuin yllä
Anna komento openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
  • Viimeinen luku tarkoittaa voimassaoloaikaa
Kopioi kansiosta C:\openssl\bin server.key ja server.crt kansioon C:\Apache2\conf

Asetetaan Apache toimimaan ssl:n kanssa

Avaa C:\Apache2\conf\httpd.conf
Poista kommentti riviltä LoadModule ssl_module modules/mod_ssl.so
Poista kommentti riviltä Include conf/extra/httpd-ssl.conf

Tehdään tokadomainista https-sivusto


Avaa kansiosta C:\Apache2\conf\extra\httpd-ssl.conf

Etsi kohta <VirtualHost _default_:443> ja anna oikeat tiedot.

Koodi: Valitse kaikki

<VirtualHost tokadomain.org:443>
#   General setup for the virtual host
DocumentRoot "c:/apache2/htdocs/tokadomain"
ServerName tokadomain.org:443
ServerAdmin admin@example.com
ErrorLog "c:/apache2/logs/tokadomainSSL_error.log"
TransferLog "c:/apache2/logs/tokadomainSSL_access.log"

Nyt jos sulla on sekä http että https yhteys sallittu pitää vielä pakottaa yhteys https-yhteydeksi. Se tapahtuu seuraavasti.

Avaa C:\Apache2\conf\httpd.conf
Poista kommenttimerkki riviltä LoadModule rewrite_module modules/mod_rewrite.so
Avaa C:\Apache2\conf\extra\httpd-vhosts.conf
Liitä sivuston johon haluat automaattisen siirron alkuun

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

Koodi: Valitse kaikki

<VirtualHost *:80>
    RewriteEngine on
    RewriteCond %{SERVER_PORT} ^80$
    RewriteRule ^/(.*)$ https://%{SERVER_NAME} [L,R]
    RewriteLog "c:/apache2/logs/tokadomain_rewrite.log"
    RewriteLogLevel 2

    ServerAdmin eero.lehtinen@poytya.fi
    DocumentRoot "C:/Apache2/htdocs/tokadomain"
    ServerName tokadomain.org
    ErrorLog "logs/tokadomain-error.log"
    CustomLog "logs/tokadomain-access.log" common
</VirtualHost>

SUOJATAAN SIVUSTO SALASANALLA

Luo kansioon jonka haluat suojata .htaccess-niminen tiedosto.
Tiedoston nimi tulee ehdottomasti olla .htaccess ei mitään muuta.
Jos teet .htaccess tiedostoa ensikertaa, voi teksti tiedoston tallennus / nimeäminen .htaccess nimellä olla hankalaa koska windows ei ymmärrä kyseistä formaattia ja siksi haluaa aina lisätä .txt joka tiedoston loppuun mitä tallennat notepadilla. Esim: .htaccess.txt on yleensä lopputulos. Jos tallennus ei tahdo sujua tee näin:
avaa notepad, kirjoita .htaccess tiedoston sisältö ja valitse tallenna nimellä ja anna tiedoston nimi lainausmerkeissä, eli näin: ".htaccess" Nyt jopa windows onnistui tekemään tiedoston. Onneksi olkoon .htaccess tiedosto on luotu. Käytä samaa menetelmää luodessasi .password tiedostoa.

.htaccess tiedoston voit laittaa minne tahansa sivuillasi. Sen vaikutus ulottuu joka kansioon ja tiedostoon sen alapuolella. Jos laitat .htaccess tiedoston suoraan sivujesi juureen, se vaikuttaa jokaiseen kansioon ja tiedostoon. Jos teet sille oman kansion tai laitat sen esim kansioon secure, sen vaikutus ulottuu kansioon secure ja kaikkii sen sisällä oleviin kansioihin sekä tiedostoihin.

Esimerkki .htaccess-tiedostosta:

Koodi: Valitse kaikki

order deny,allow
deny from all
#
# Sallitaan liikenne verkosta 192.168.1 ja osoitteesta 62.121.36.122 ilman salasanakyselyä
#
allow from 192.168.1.0/24
allow from 62.121.36.122
AuthType Basic
AuthUserFile C:/apache2/.kayttajat
AuthName "vaatii kirjautumisen"
require valid-user
Satisfy any
# ErrorDocument 401 /401.html (oma virhesivu)
Luodaan .kayttajat jossa sijaitsee käyttäjien tunnukset ja salasanat.
Luo .kayttajat-tiedosto. Salasana-tiedosto kannattaa nimetä toisella nimellä ja tallentaa eri paikkaan kuin sivustosi on. Esimerkiksi C:\apache2-kansioon. Tämä siksi, ettei ketä tahansa pääse katsomaan kyseistä tiedostoa. Tietysti salasanan voi kryptata ja tämä onkin pakollista jos ei ole omaa palvelinta.

Salasana-tiedoston polun saat selville php-scriptillä <?php echo getcwd(); ?>

Avaa httpd.conf ja etsi kohta <Directory "c:/Apache2/htdocs">
Siirry alaspäin ja muuta seuraava AllowOverride none muotoon AllowOverride all. Muuta ei tarvi muuttaa.

Käynnistä apache uusiksi ja testaa.
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Jos halutaan suojata pääsivun alla oleva hakemisto

Viesti Kirjoittaja eero »

Ohjataan pääsivun alla oleva hakemisto automaattisesti https-yhteyteen seuraavasti

RewriteEngine on
RewriteCond %{SERVER_PORT} !443
RewriteRule ^/intranet/(.*)$ https://www.omadomain.fi/intranet/$1 [R,L]

Huomaa välit

Koko systeemi:

<VirtualHost *:80>

RewriteEngine on
RewriteCond %{SERVER_PORT} !443
RewriteRule ^/intranet/(.*)$ https://www.omadomain.fi/intranet/$1 [R,L]

ServerAdmin eero.lehtinen@omadomain.fi
DocumentRoot "C:/apache2/htdocs/omasivu"
ServerName www.omadomain.fi
ServerAlias omadomain.fi
ErrorLog "logs/omadomain-error.log"
CustomLog "logs/omadomain-access.log" common
</VirtualHost>
Vastaa Viestiin