Moduuli 3 · 3.1
Https ja sertifikaatti
Moduuli 3: Osoite, https ja käyttäjät · Lukuaika: 8 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat siirtää WordPress-sivuston kokonaan https:ään ja tiedät, mitä WordPress-osoite ja sivuston osoite tekevät.
Keskeiset käsitteet: TLS, sertifikaatti, Let's Encrypt, automaattinen uusiminen, WordPress-osoite (siteurl), sivuston osoite (home), WP_HOME ja WP_SITEURL, HSTS, ulos lukkiutuminen
Mitä https tekee
Kun käytössä on https, kaikki selaimen ja palvelimen välillä kulkeva salataan: salasanat, lomakkeet, evästeet, myös tavalliset sivut. Ilman https:ää kuka tahansa samassa verkossa (julkinen wifi, kaapattu reititin) voi lukea liikennettä mukana ja jopa muuttaa sivua. Selaimet merkitsevät sivuston ilman https:ää "ei turvallinen" ja osa toiminnoista (kuten sijainti tai kamera) toimii vain https:n kanssa.
Salaus toimii TLS:n avulla. Jotta selain voi todistaa keskustelevansa oikeasti example.com:n kanssa eikä välikäden kanssa, palvelimella on sertifikaatti: digitaalinen todiste, jonka on allekirjoittanut selainten luotettavaksi tunnustama myöntäjä. Sertifikaatissa on mainittu nimet, joille se kelpaa, ja voimassaoloaika.
Ilmaiset sertifikaatit ja uusiminen
Let's Encrypt myöntää ilmaisia sertifikaatteja. Lähes jokainen webhotelli hakee ne automaattisesti ja uusii ne myös automaattisesti. Let's Encryptin sertifikaatti on nykyään voimassa 90 päivää, ja Let's Encrypt on ilmoittanut lyhentävänsä voimassaoloaikaa vaiheittain 45 päivään. Käsin uusiminen ei siksi ole vaihtoehto: sen täytyy tapahtua automaattisesti.
Maksullinen sertifikaatti ei salaa paremmin. Ero on organisaation lisätarkistuksessa (ja joskus takuussa). Useimmille sivustoille ilmainen sertifikaatti riittää hyvin.
Mihin kannattaa kiinnittää huomiota:
- Sertifikaatin täytyy kattaa jokainen nimi, jonka kävijä voi kirjoittaa:
example.comjawww.example.com. Myös pelkästään uudelleenohjaava nimi, sillä selain tarkistaa sertifikaatin ennen uudelleenohjausta. - Automaattinen uusiminen onnistuu vain, jos DNS osoittaa palvelimeesi. Jos olet siirtänyt DNS:n tai ottanut käyttöön proxyn (kuten Cloudflare), tarkista että uusiminen toimii edelleen.
- CAA-tietue DNS:ssä voi määrätä, mitkä myöntäjät saavat luoda sertifikaatteja. Jos Let's Encrypt ei ole listalla, hakeminen epäonnistuu (DNS-kurssin oppitunti 5.2).
Kaksi osoitetta WordPressissä
Kohdassa Asetukset > Yleiset on kaksi osoitetta. Ne vaikuttavat turhan kaksinkertaisilta, mutta tarkoittavat eri asiaa:
| Kenttä | Tietokannassa | Merkitys |
|---|---|---|
| WordPress-osoite (URL) | siteurl | Missä WordPressin tiedostot sijaitsevat (wp-admin, wp-includes) |
| Sivuston osoite (URL) | home | Osoite, jota kävijät käyttävät |
Yleensä ne ovat samat, esimerkiksi molemmat https://example.com. Ne eroavat vain, jos WordPress sijaitsee alihakemistossa mutta sivuston pitää näkyä päähakemistossa.
WordPress rakentaa kaikki linkit näiden osoitteiden avulla: sivuille, tyylitiedostoihin, kuviin, hallintaan. Jos tässä lukee http://, WordPress rakentaa sivut http://-linkeillä, vaikka kävijä tulisi sisään https:n kautta. Tämä aiheuttaa sekasisältöä (mixed content) (oppitunti 3.2) ja edestakaisia uudelleenohjauksia.
Sivuston siirtäminen https:ään
Jos sinulla on olemassa oleva sivusto http:ssä, näin etenet:
- Pyydä sertifikaatti molemmille nimille ja tarkista, että
https://example.comtoimii (näet silloin WordPress-sivun, ehkä vielä ilman muotoilua). - Tee varmuuskopio (oppitunti 8.1).
- Aseta molemmat osoitteet kohdassa Asetukset > Yleiset arvoon
https://ja tallenna. Jäät uloskirjautuneeksi, kirjaudu uudelleen sisään https:n kautta. - Muunna sisällön vanhat linkit muodosta
http://example.commuotoonhttps://example.com. Tee se työkalulla, joka ymmärtää serialisoitua dataa, kutenwp search-replacetai etsi ja korvaa -lisäosa (oppitunti 3.2), älä koskaan suoralla SQL-komennolla. - Uudelleenohjaus: aseta webpalvelin ohjaamaan kaikki http-pyynnöt 301-uudelleenohjauksella https:ään (oppitunti 3.2). Monessa webhotellissa tähän on valintaruutu; muuten muutama rivi
.htaccess-tiedostoon. - Tarkista tämän oppitunnin ja oppitunnin 3.2 tehtävällä.
Ulos lukkiutuminen: jos osoite on väärin
Jos kirjoitat osoitteisiin näppäilyvirheen (htps://, väärä verkkotunnus), WordPress ohjaa sinut tallennuksen jälkeen tuohon väärään osoitteeseen. Et pääse enää hallintaan. Ei hätää, on kaksi ratkaisua:
wp-config.php:n kautta. Lisää rivin "lopeta muokkaaminen tästä" yläpuolelle:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Nämä rivit menevät tietokannan arvojen edelle. Kentät kohdassa Asetukset > Yleiset muuttuvat silloin harmaiksi. Kirjaudu sisään, aseta oikeat arvot tietokantaan ja poista rivit taas (tai jätä ne tarkoituksella paikalleen, jolloin kukaan ei voi vahingossa muuttaa osoitteita hallinnan kautta).
phpMyAdminin kautta. Avaa taulu wp_options ja muokkaa arvoja siteurl ja home.
HSTS: selaimen saaminen muistamaan
Otsakkeella HSTS (Strict-Transport-Security) palvelin kertoo selaimelle: "tule tänne jatkossa vain https:n kautta." Selain muuttaa sen jälkeen itse jokaisen http://-osoitteen muotoon https://, tekemättä ensin suojaamatonta pyyntöä.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS on hyvä lisäaskel, mutta siihen liittyy varoitus: selain, joka on nähnyt HSTS:n, kieltäytyy sen jälkeen avaamasta sivustoa ilman kelvollista sertifikaattia, ei edes "jatka silti" valinnalla. includeSubDomains-määrityksellä tämä koskee jokaista alidomainia. Jos sinulla on alidomain ilman sertifikaattia (esimerkiksi vanha sisäinen järjestelmä), se on HSTS:n jälkeen saavuttamattomissa. Aloita siksi lyhyellä max-age-arvolla (esimerkiksi yksi päivä, 86400), tarkista kaikki ja pidennä sitten.
Käytännössä: näin se näkyy paneelissa
Esimerkkinä käytämme DirectAdminia. cPanelissa osio on nimeltään SSL/TLS Status (AutoSSL), Pleskissä SSL/TLS Certificates.
- Avaa SSL-sertifikaatit verkkotunnuksesi kohdalla ja valitse Ilmainen ja automaattinen Let's Encrypt -sertifikaatti.
- Valitse
example.comjawww.example.comja pyydä sertifikaattia. - Valitse verkkotunnuksen asetuksissa ruutu, joka ohjaa kävijät aina https:ään (DirectAdminissa: Forceer SSL met https omleiding). Käytä vain yhtä uudelleenohjaustapaa kerrallaan: kaksi eri tapaa yhtä aikaa voi aiheuttaa kehän ("liian monta uudelleenohjausta").
- Mene WordPressissä kohtaan Asetukset > Yleiset ja aseta molemmat osoitteet arvoon
https://.
Yhteenveto
- https salaa kaiken selaimen ja palvelimen välillä; sertifikaatti todistaa, kuka palvelin on.
- Let's Encryptin ilmaiset sertifikaatit ovat lyhytaikaisia ja uusiutuvat automaattisesti; niiden täytyy kattaa jokainen nimi, jonka kävijä kirjoittaa.
- WordPress-osoitteen (siteurl) ja sivuston osoitteen (home) täytyy molempien olla
https://. - Jos jäät ulos väärän osoitteen takia, korjaa tilanne WP_HOME- ja WP_SITEURL-määrityksillä wp-config.php:ssa tai phpMyAdminissa.
- HSTS on hyvä lisäaskel; aloita lyhyellä voimassaoloajalla.
Tietovisa
Tehtävä
Tehtävä A3.1: Onko sertifikaattisi kunnossa? Syötä sivustosi osoite. Ohjelma muodostaa TLS-yhteyden sekä verkkotunnukseen ilman www:tä että www:n kanssa (jos sellainen on olemassa) ja tarkistaa: onko sertifikaatti kelvollinen ja luotettu, kattaako se molemmat nimet, onko se voimassa yli 14 päivää ja lähettääkö sivusto HSTS-otsakkeen? Jos HSTS puuttuu, se näkyy oranssina selityksen kanssa, ei virheenä.
Lue lisää
Nämä artikkelit kuvaavat vaiheet WebOkén paneeleissa; muissa paneeleissa toiminta on samankaltaista.
- DirectAdmin-ohje 6.1: Mikä on SSL ja miten WebOké hoitaa sen?
- DirectAdmin-ohje 6.2: Ilmaisen Let's Encrypt-sertifikaatin hankkiminen
- DirectAdmin-ohje 6.3: Sertifikaatti www tunnukselle, aliverkkotunnuksille ja wildcardille
- DirectAdmin-ohje 6.4: Kävijät aina https-osoitteeseen ohjaaminen
- SSL-varmenteen aktivointi, uusiminen ja ongelmien ratkaiseminen
- Ilmaisen ja maksullisen varmenteen ero
- Ilmainen DNS-kurssi 5.2: CAA: kuka saa myöntää varmenteita?
