Siirry pääsisältöön

HSTS-asetusten hallinta ja tiukentaminen

HSTS-suojaus on Seravolla käytössä oletuksena. Opi, kuinka voit tiukentaa HSTS-sääntöjä (includeSubDomains, preload) ja mitä riskejä niihin liittyy.

Kaikilla Seravon ylläpidossa olevilla sivustoilla on oletuksena käytössä HTTPS-varmenne ja perustason HSTS-suojaus (HTTP Strict Transport Security). HSTS on HTTP-otsake, joka kertoo selaimelle, että sivustoa saa ladata ainoastaan salatulla HTTPS-yhteydellä. Mikäli selain havaitsee salaamattoman yhteyden, se kieltäytyy lataamasta sivua, mikä estää tehokkaasti muun muassa väliintulohyökkäykset (kuten DNS-kaappaukset).

Seravolla HSTS on määritelty valmiiksi kaikille sivustoille tiedostossa /data/wordpress/nginx/security.conf arvolla max-age=63072000 (selain muistaa vaatimuksen kahden vuoden ajan). Tämä opas neuvoo, kuinka voit tiukentaa näitä sääntöjä entisestään.

Edellytykset

  • SSH-yhteys palvelimelle.

  • Varmuus siitä, että kaikilla aliverkkotunnuksillasi (esim. testi.esimerkki.fi) on toimiva HTTPS-varmenne, mikäli aiot ottaa käyttöön includeSubDomains-määrityksen.

Tapa 1: HSTS-asetusten tiukentaminen nginx-konfiguraatiossa (suositeltu)

Jos haluat vaatia HTTPS-salausta myös aliverkkotunnuksilta tai lisätä sivustosi kansainväliselle HSTS Preload -listalle, voit muokata nginx-palvelimen asetuksia komentoriviltä.

  1. Yhdistä palvelimelle ja avaa asetustiedosto: Yhdistä sivustollesi SSH:lla ja avaa security.conf-tiedosto tekstieditorilla (esim. nano):

    nano /data/wordpress/nginx/security.conf
  2. Päivitä HSTS-otsake: Etsi tiedostosta rivi, jossa lukee add_header Strict-Transport-Security "max-age=63072000;"; ja korvaa se haluamallasi tiukennetulla versiolla. Esimerkki tiukimmasta mahdollisesta suojaustasosta:

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
  3. Tallenna tiedosto: Tallenna tekemäsi muutokset ja sulje editori.

  4. Käynnistä nginx uudelleen: Jotta uudet asetukset tulevat voimaan, käynnistä HTTP-palvelin uudelleen komennolla:

    wp-restart-nginx

Tapa 2: HSTS-otsakkeen lähetys PHP-koodilla

Vaihtoehtoisesti voit lähettää HSTS-otsakkeen suoraan WordPressin PHP-koodista käsin (esimerkiksi teeman functions.php-tiedostossa) käyttämällä WordPressin send_headers-koukkua. Seravon ympäristössä nginx-tason määritys (Tapa 1) on kuitenkin ensisijaisesti suositeltu vaihtoehto sen huomattavasti paremman suorituskyvyn ja toimintavarmuuden vuoksi.

Vianmääritys / Usein kysyttyä

  • Mitä riskejä tiukempiin HSTS-määrityksiin liittyy?

    • includeSubDomains: Tämä asetus pakottaa säännön voimaan kaikissa sivustosi aliverkkotunnuksissa. Älä ota tätä käyttöön, jos sinulla on yksikin salaamaton tai ilman SSL-varmennetta toimiva aliverkkotunnus, sillä selain estää pääsyn sinne välittömästi.

    • preload: Tämä parametri antaa luvan lisätä sivustosi selainten (kuten Chrome ja Firefox) ylläpitämälle kovakoodatulle HSTS-esilatauslistalle. Jos sivustosi lisätään listalle ja joudut jostain syystä poistamaan HTTPS:n käytöstä, sivuston poistaminen esilatauslistalta voi viedä kuukausia. Tänä aikana sivustosi on tavoittamattomissa osalle käyttäjistä.

  • Miten testaan HSTS-asetuksen toimivuuden? Kun olet käynnistänyt nginxin uudelleen, voit testata sivustosi HSTS-otsakkeen oikeellisuuden ja valmiuden esilatauslistalle käyttämällä virallista työkalua osoitteessa hstspreload.org.

  • En ole varma, onko sivustoni valmis tiukempaan HSTS-asetukseen? Voit tilata Seravolta asiantuntijatyönä tarkistuksen, jossa varmistamme ympäristösi ja aliverkkotunnustesi valmiuden tiukemmalle HSTS-asetukselle.

Katso myös

HSTS on tehokas tapa varmistaa, että sivustosi verkkoliikenne pysyy aina salattuna ja suojattuna väliintulohyökkäyksiltä. Seravon oletusasetukset tarjoavat jo erinomaisen perussuojan useimmille sivustoille, mutta tiukennetuilla säännöillä viet sivustosi tietoturvan korkeimmalle mahdolliselle tasolle. Mikäli tarvitset apua nginx-määritysten tekemisessä tai haluat varmistaa sivustosi valmiuden ennen HSTS Preload -listalle siirtymistä, asiakaspalvelumme ja asiantuntijamme ovat aina apunasi osoitteessa [email protected].

Vastasiko tämä kysymykseesi?