Ubuntu-käyttöjärjestelmän monien pakettien joukossa on Apache-verkkopalvelin. Itse asiassa Ubuntun skaalautuvuus ja joustavuus tekevät siitä ihanteellisen alustan jopa eniten liikennöityjen web-sivustojen isännöimiseen.
Tässä luvussa selitämme, kuinka Ubuntu-järjestelmä määritetään toimimaan verkkopalvelimena Apachea käyttäen, mukaan lukien sekä suojatut (HTTPS) että suojaamattomat (HTTP) kokoonpanot.
Oman Web-sivuston luomiseen tarvitset tietokoneen (tai pilvipalvelininstanssin), käyttöjärjestelmän, verkkopalvelimen, verkkotunnuksen, nimen palvelin ja IP-osoite.
Käyttöjärjestelmän osalta oletamme tietysti, että käytät Ubuntua. Kuten aiemmin mainittiin, Ubuntu tukee Apache-verkkopalvelinta, joka voidaan helposti asentaa, kun käyttöjärjestelmä on valmis. Verkkotunnus voidaan rekisteröidä mihin tahansa verkkotunnusten rekisteröintipalveluun.
Jos käytät Ubuntua pilvi-instanssissa, palveluntarjoajan antama IP-osoite näkyy palvelimen yleiskatsauksessa. Jos isännöit omaa palvelintasi ja Internet-palveluntarjoajasi (ISP) on määrittänyt staattisen IP-osoitteen, sinun on liitettävä verkkotunnuksesi tähän osoitteeseen. Tämä saavutetaan nimipalvelimen avulla ja kaikki verkkotunnuksen rekisteröintipalvelut tarjoavat tämän palvelun puolestasi.
Jos sinulla ei ole staattista IP-osoitetta (eli Internet-palveluntarjoajasi tarjoaa sinulle dynaamisen osoitteen, joka vaihtuu usein), voit käyttää yhtä useista ilmaisista dynaamisista DNS-palveluista (lyhyesti DDNS tai DynDNS), jotka kartoittavat dynaamisen IP-osoite verkkotunnukseesi.
Kun olet määrittänyt verkkotunnuksesi ja nimipalvelimesi, seuraava vaihe on asentaa ja määrittää verkkopalvelimesi.
Ubuntun nykyinen versio ei yleensä asenna oletusarvoisesti Apache-verkkopalvelinta. Voit tarkistaa, onko palvelin jo asennettu, suorittamalla seuraava komento:
Jos apt tuottaa seuraavanlaista tulosta, apache-palvelin on jo asennettu:
Jos apt-tuloste ei lue pakettia tai sisällä [asennettu]-tilaa, suorita Apache-asennus suorittamalla komentokehotteessa seuraava komento:
Ennen Apache-verkkopalvelimen käynnistämistä ja testaamista palomuuria on muutettava, jotta verkkopalvelin voi kommunikoida ulkomaailman kanssa. Oletusarvoisesti HTTP- ja HTTPS-protokollat käyttävät portteja 80 ja 443, joten riippuen siitä, mitä protokollia käytetään, jompikumpi tai molemmat näistä porteista on avattava. Jos Ubuntu-järjestelmääsi suojaa mutkaton palomuuri, seuraavalla komennolla voidaan ottaa käyttöön vain suojaamaton verkkoliikenne (HTTP):
Vain suojatun (HTTPS) liikenteen käyttöönotto:
Vaihtoehtoisesti voit ottaa sekä suojatun että suojaamattoman verkkoliikenteen käyttöön seuraavasti:
Jos käytät palomuuria, HTTP- ja HTTPS-porttien avaamiseen voidaan käyttää seuraavia komentoja. Kun avaat portteja, muista määrittää palomuurivyöhyke, joka koskee Internetiin päin olevaa verkkoyhteyttä:
Kun olet avannut tarvittavat portit, muista ladata palomuuriasetukset uudelleen:
Pilvipalveluissa voi myös olla tarpeen ottaa käyttöön sopiva portti palvelinesiintymää varten pilvikonsolissa. Katso pilvipalveluntarjoajan dokumentaatiosta ohjeet tämän tekemiseen.
Jos verkkopalvelinta isännöivä Ubuntu-järjestelmä on palomuurilla suojatussa verkossa (joko toisessa palomuuria käyttävässä tietokoneessa tai reitittimessä tai langattomassa tukiasemassa, jossa on sisäänrakennettu palomuurisuojaus ) sinun on määritettävä palomuuri välittämään portti 80 ja/tai portti 443 verkkopalvelinjärjestelmääsi. Tämän suorittamismekanismi vaihtelee palomuurien ja laitteiden välillä, joten tarkista dokumentaatiosta, kuinka portin edelleenohjaus määritetään.
Kun Apache-palvelin on asennettu ja palomuuri määritetty, seuraava vaihe on varmistaa, että palvelin on käynnissä, ja käynnistää se tarvittaessa.
Jos haluat tarkistaa Apache-palvelun tilan komentoriviltä, kirjoita komentokehotteeseen seuraava:
Jos yllä oleva komento osoittaa, että httpd-palvelu ei ole käynnissä, se voidaan käynnistää komentoriviltä seuraavasti:
Jos haluat Apache httpd -palvelun käynnistyvän automaattisesti järjestelmän käynnistyessä, suorita seuraava komento:
Kun asennus on valmis, seuraava vaihe on varmistaa, että verkkopalvelin on toiminnassa.
Jos sinulla on pääsy (joko paikallisesti tai etänä) palvelimen työpöytäympäristöön, käynnistä verkkoselain ja kirjoita osoitepalkkiin http://127.0.0.1 (127.0.0.1 on silmukkaverkko osoite, joka käskee järjestelmän muodostamaan yhteyden paikalliseen koneeseen). Jos kaikki on asetettu oikein, selaimen pitäisi ladata kuvassa 32-1 näkyvä sivu:
Kuva 32-1
Jos työpöytäympäristö ei ole käytettävissä, muodosta yhteys joko toisesta järjestelmästä, joka on samassa paikallisessa verkossa kuin palvelin, tai käyttämällä järjestelmälle määritettyä ulkoista IP-osoitetta, jos sitä isännöidään etänä.
Seuraava vaihe verkkopalvelimen määrittämisessä on määrittää se verkkotunnuksellesi. Verkkopalvelimen asetukset aloita muuttamalla hakemistoon /etc/apache2, joka puolestaan sisältää useita tiedostoja ja alihakemistoja. Pääasetustiedosto on nimeltään apache2.conf, ja se toimii keskeisenä pisteenä alihakemistoissa olevien modulaaristen asetustiedostojen järjestämisessä. Esimerkiksi apache2.conf-tiedosto sisältää rivin, jolla tuodaan sivustoja tukevassa kansiossa olevissa tiedostoissa ilmoitetut kokoonpanoasetukset:
Samalla tavoin apache2.conf-tiedosto tuo ports.conf-tiedoston, joka määrittää portit, joissa Apache-palvelin kuuntelee verkkoliikennettä.
Jos haluat määrittää verkkosivuston toimialueen Ubuntussa, aloita vaihtamalla hakemisto hakemistoon /etc/apache2. Tästä hakemistosta löydät kaksi alihakemistoa, sites-available ja sites-enabled. Muuta hakemisto sivustoiksi saatavilla. Tästä hakemistosta löydät oletustiedoston, jota voidaan käyttää oman sivustosi mallina.
Kopioi oletustiedosto uuteen tiedostoon, jonka nimi vastaa verkkotunnuksesi nimeä. Esimerkiksi:
Muokkaa myexample.com-tiedostoa suosikkieditorillasi, jossa se näkyy seuraavasti:
ServerAdmin-direktiivi määrittää järjestelmänvalvojan sähköpostiosoitteen ihmisille, jotka haluavat ottaa yhteyttä sivustosi verkkovastaavaan. Muuta tämä sopivaksi sähköpostiosoitteeksi, josta sinuun voidaan ottaa yhteyttä:
Seuraavaksi ServerName-komentoa ei saa kommentoida (toisin sanoen poistaa #-merkin etuliite) ja määrittää, jotta verkkopalvelin tietää, mihin virtuaaliseen isäntään tämä asetustiedosto viittaa:
Seuraavassa vaiheessa meidän on määritettävä, missä Web-sivuston tiedostot sijoitetaan DocumentRoot-direktiivin avulla. Perinne on käyttää /var/www/domain-name:
Kun muutokset on tehty, meidän on nyt otettava sivusto käyttöön seuraavasti:
Tämä komento luo symbolisen linkin sites-available-hakemistossa olevasta myexample.conf-tiedostosta sites-enabled-kansioon.
Kun sivusto on käytössä, poista oletustestisivusto käytöstä suorittamalla seuraava komento:
Luo seuraavaksi /var/www/myexample.com-hakemisto ja sijoita siihen index.html-tiedosto. Esimerkiksi:
Kun nämä muutokset on tehty, suorita apache2ctl-komento tarkistaaksesi määritystiedostot virheiden varalta:
Jos virheitä ei raportoida, lataa Apache-verkkopalvelin uudelleen varmistaaksesi, että se tunnistaa uudet asetukset:
Tarkista lopuksi, että palvelimen asetukset toimivat avaamalla selainikkuna ja siirtymällä sivustolle käyttämällä verkkotunnusta IP-osoitteen sijaan. Ladattavan verkkosivun tulee olla se, joka on määritetty yllä luodussa index.html-tiedostossa.
Tässä luvussa tähän mennessä luodut verkkopalvelimet ja web-sivustot käyttävät HTTP-protokollaa portissa 80, joten niitä pidetään turvattomina. Ongelmana on, että verkkopalvelimen ja asiakkaan (yleensä käyttäjän verkkoselaimen) välinen liikenne välittyy selkeänä tekstinä. Toisin sanoen tiedot ovat salaamattomia ja alttiin siepata. Vaikka se ei ole ongelma yleisessä web-selailussa, se on vakava heikkous suoritettaessa tehtäviä, kuten kirjautumista Web-sivustoihin tai siirrettäessä arkaluonteisia tietoja, kuten henkilöllisyys- tai luottokorttitietoja.
Nykyään Web-sivustojen odotetaan käyttävän HTTPS:ää, joka käyttää joko Secure Socket Layer (SSL) tai Transport Layer Security (TLS) suojattua, salattua viestintää verkkopalvelimen ja asiakkaan välillä. Tämä suojaus varmistetaan käyttämällä julkista, yksityistä ja istuntojen salausta yhdessä varmenteiden kanssa.
HTTPS-tuki edellyttää, että verkkosivustolla on varmenne, jonka on myöntänyt luotettava viranomainen, joka tunnetaan nimellä Certificate Authority (CA). Kun selain muodostaa yhteyden suojattuun Web-sivustoon, verkkopalvelin lähettää takaisin kopion verkkosivuston SSL-sertifikaatista, joka sisältää myös kopion sivuston julkisesta avaimesta. Sen jälkeen selain vahvistaa varmenteen aitouden luotetuilta varmentajilta.
Jos varmenne todetaan kelvolliseksi, selain käyttää palvelimen lähettämää julkista avainta istuntoavaimen salaamiseen ja välittää sen palvelimelle. Palvelin purkaa istuntoavaimen salauksen yksityisellä avaimella ja lähettää sen avulla salatun kuittauksen selaimelle. Kun tämä prosessi on valmis, selain ja palvelin käyttävät istuntoavainta salatakseen kaikki myöhemmät tiedonsiirrot istunnon päättymiseen saakka.
Oletusarvoisesti Apache-palvelin ei sisällä tarvittavaa moduulia suojatun HTTPS-verkkosivuston toteuttamiseen. Ensimmäinen askel on siksi ottaa Apache mod_ssl -moduuli käyttöön palvelinjärjestelmässä seuraavasti:
Käynnistä httpd uudelleen asennuksen jälkeen ladataksesi uuden moduulin Apache-palvelimeen:
Tarkista seuraavalla komennolla, että moduuli on ladattu palvelimeen:
Kun ssl-moduuli on asennettu, toista tämän luvun edellisen osan vaiheet luodaksesi määritystiedoston verkkosivustolle, tällä kertaa käyttämällä sivuston määritysten mallina tiedostoa sites-available/default-ssl.conf. tiedosto.
Jos moduuli on asennettu, seuraava vaihe on luoda SSL-varmenne verkkosivustolle.
Verkkosivuston varmenne on hankittava varmenteen myöntäjältä. Saatavilla on useita vaihtoehtoja eri hintaluokissa. Ylivoimaisesti paras vaihtoehto on kuitenkin hankkia ilmainen varmenne Let’s Encryptiltä seuraavasta URL-osoitteesta:
https://letsencrypt.org/
Let’s Encryptin varmenteen saaminen edellyttää vain Certbot-työkalun asentamista ja käyttämistä. Tämä työkalu skannaa palvelimella olevat Apache-määritystiedostot ja tarjoaa mahdollisuuden luoda varmenteita kaikille järjestelmään määritetyille virtuaalisille koneille. Se luo sitten varmenteen ja lisää virtuaalisia isäntämerkintöjä Apache-kokoonpanoon erityisesti vastaavia verkkosivustoja varten.
Asenna certbot-työkalu Ubuntu-järjestelmääsi seuraavasti:
Kun certbot on asennettu, suorita se seuraavasti:
Kun Certbot on pyytänyt sähköpostiosoitetta ja pyytänyt käyttöehtojen hyväksyntää, se luettelee sivustot-käytettävissä-kansiossa olevat verkkotunnukset ja tarjoaa mahdollisuuden valita yksi tai useampi niistä sivustoista, joille varmenne asennetaan. Certbot suorittaa sitten joitain tarkistuksia ennen varmenteen hankkimista ja asentamista järjestelmään:
Certbot on myös luonut uuden tiedoston nimeltä myexample-le-ssl.conf hakemistoon /etc/apache2/sitesavailable, joka sisältää suojatun virtuaalisen isäntämerkinnän jokaiselle verkkotunnukselle, jolle on luotu varmenne ja sallinut sivuston. että linkki tiedostoon on tehty /etc/apache2/sites-enabled-hakemistoon. Nämä merkinnät ovat samankaltaisia kuin seuraavat:
Lopuksi Certbot kysyy, pitäisikö palvelimen ohjata tulevat HTTP-verkkopyynnöt HTTPS:ään. Toisin sanoen, jos käyttäjä yrittää käyttää osoitetta http://www.myexample.com, verkkopalvelin ohjaa käyttäjän osoitteeseen https://www.myexample.com:
Jos testaat parhaillaan HTTPS-kokoonpanoa ja haluat pitää HTTP-version käytössä myöhempään asti, valitse Ei uudelleenohjausta -vaihtoehto. Muussa tapauksessa HTTPS-uudelleenohjaus on yleensä suositeltavaa.
Kun varmenne on asennettu, testaa sitä selaimessa seuraavassa URL-osoitteessa (korvaa myexample.com omalla verkkotunnuksellasi):
Jos varmenteen määritys onnistui, SSL Labs -raportti antaa korkean arvosanan kuvan 32-2 mukaisesti:
Kuva 32-2
Viimeisenä testinä avaa selainikkuna ja siirry verkkotunnukseesi käyttämällä https://-etuliitettä. Sivun tulee latautua kuten ennenkin ja selaimen tulee ilmoittaa, että yhteys selaimen ja palvelimen välillä on suojattu (yleensä osoiterivillä on lukkokuvake, jota voi napsauttaa saadaksesi lisätietoja):
Kuva 32-3
Ubuntu-järjestelmää voidaan käyttää web-sivustojen isännöimiseen asentamalla Apache-verkkopalvelin. Sekä suojaamattomia (HTTP) että suojattuja (HTTPS) verkkosivustoja voidaan ottaa käyttöön Ubuntussa. Suojatut web-sivustot käyttävät joko Secure Socket Layer (SSL) tai Transport Layer Security (TLS) salattua viestintää verkkopalvelimen ja asiakkaan välillä käyttämällä julkista, yksityistä ja istuntosalausta yhdessä luotettavan varmenteen myöntäjän myöntämän varmenteen kanssa.