Modul 3 · 3.1
Https og sertifikatet
Modul 3: Adresse, https og brukere · Lesetid: 8 minutter
Læringsmål: Etter denne leksjonen kan du sette en WordPress-nettside fullstendig over på https, og du vet hva WordPress-adressen og nettstedsadressen gjør.
Nøkkelbegreper: TLS, sertifikat, Let's Encrypt, automatisk fornyelse, WordPress-adresse (siteurl), nettstedsadresse (home), WP_HOME og WP_SITEURL, HSTS, bli utestengt
Hva https gjør
Med https blir alt mellom nettleser og server kryptert: passord, skjemaer, informasjonskapsler, også vanlige sider. Uten https kan alle på samme nettverk (en offentlig wifi, en kapret ruter) lese med og til og med endre siden. Nettlesere viser et nettsted uten https som «ikke sikkert», og enkelte funksjoner (som posisjon eller kamera) fungerer bare med https.
Krypteringen kalles TLS. For å bevise at nettleseren faktisk snakker med example.com og ikke med en mellommann, har serveren et sertifikat: et digitalt bevis, signert av en utsteder som nettlesere stoler på. Sertifikatet angir hvilke navn det gjelder for, og til når.
Gratis sertifikater og fornyelse
Let's Encrypt utsteder gratis sertifikater. Nesten alle webhotell bestiller dem automatisk og fornyer dem også automatisk. Et sertifikat fra Let's Encrypt er nå gyldig i 90 dager, og Let's Encrypt har varslet at de gradvis vil korte ned gyldigheten til 45 dager. Manuell fornyelse er derfor ikke et alternativ: det må skje automatisk.
Et betalt sertifikat krypterer ikke bedre. Forskjellen ligger i ekstra kontroll av organisasjonen (og noen ganger en garanti). For de fleste nettsteder er et gratis sertifikat helt fint.
Hva du bør passe på:
- Sertifikatet må dekke hvert navn en besøkende kan skrive inn:
example.comogwww.example.com. Også navnet som bare videresender, fordi nettleseren kontrollerer sertifikatet før videresendingen skjer. - Automatisk fornyelse fungerer bare hvis DNS peker til serveren din. Har du flyttet DNS eller satt en proxy (som Cloudflare) foran, bør du kontrollere at fornyelsen fortsatt fungerer.
- En CAA-post i DNS kan bestemme hvilke utstedere som får lage sertifikater. Står ikke Let's Encrypt der, mislykkes bestillingen (DNS-kurs leksjon 5.2).
To adresser i WordPress
Under Innstillinger > Generelt finner du to adresser. De kan virke unødvendig doble, men de betyr noe forskjellig:
| Felt | I databasen | Betydning |
|---|---|---|
| WordPress-adresse (URL) | siteurl | Hvor WordPress-filene ligger (wp-admin, wp-includes) |
| Nettstedsadresse (URL) | home | Adressen besøkende bruker |
Vanligvis er de like, for eksempel begge https://example.com. De skiller seg bare hvis WordPress ligger i en undermappe, men nettstedet skal vises på hovedmappen.
WordPress bygger alle lenker med disse adressene: til sider, stilark, bilder, kontrollpanelet. Står det http:// her, bygger WordPress sider med http://-lenker, selv om den besøkende kommer inn via https. Det gir blandet innhold (leksjon 3.2) og videresendinger frem og tilbake.
Å sette et nettsted over på https
Har du et eksisterende nettsted på http, er dette stegene:
- Bestill sertifikat for begge navn og kontroller at
https://example.comfungerer (du ser da en WordPress-side, kanskje fortsatt uten formatering). - Ta en sikkerhetskopi (leksjon 8.1).
- Sett begge adressene under Innstillinger > Generelt til
https://og lagre. Du blir logget ut; logg inn på nytt via https. - Gamle lenker i innholdet må endres fra
http://example.comtilhttps://example.com. Gjør dette med et verktøy som forstår serialiserte data, somwp search-replaceeller en søk-og-erstatt-utvidelse (leksjon 3.2), aldri med en ren SQL-kommando. - Videresending: la webserveren sende alle forespørsler på http videre med en 301 til https (leksjon 3.2). Mange webhotell har en avkrysningsboks for dette; ellers noen linjer i
.htaccess. - Kontroller med oppgaven i denne leksjonen og den i leksjon 3.2.
Utestengt: når adressen er feil
Skriver du en skrivefeil i adressene (htps://, et feil domene), sender WordPress deg til den feilaktige adressen etter lagring. Du kommer ikke lenger inn i kontrollpanelet. Ingen grunn til panikk, det finnes to utveier:
Via wp-config.php. Legg til over linjen «det er alt, bli ikke lei av å redigere»:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Disse linjene går foran verdiene i databasen. Feltene under Innstillinger > Generelt blir da grå. Logg inn, sett de riktige verdiene i databasen, og fjern linjene igjen (eller la dem bevisst stå, så kan ingen endre adressene ved et uhell via kontrollpanelet).
Via phpMyAdmin. Åpne tabellen wp_options og endre verdiene for siteurl og home.
HSTS: la nettleseren huske det
Med HTTP-headeren HSTS (Strict-Transport-Security) sier serveren til nettleseren: «kom hit kun via https fremover.» Nettleseren konverterer deretter selv hvert http:// til https://, uten først å sende en usikret forespørsel.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS er et godt tilleggssteg, men med en advarsel: en nettleser som har sett HSTS, nekter deretter å åpne nettstedet uten gyldig sertifikat, selv ikke med «fortsett likevel». Med includeSubDomains gjelder dette for hvert underdomene. Har du et underdomene uten sertifikat (for eksempel et gammelt internt system), blir det utilgjengelig etter HSTS. Begynn derfor med en kort max-age (for eksempel en dag, 86400), kontroller alt, og forleng deretter.
I praksis: slik ser det ut i et kontrollpanel
Som eksempel bruker vi DirectAdmin. I cPanel heter funksjonen SSL/TLS Status (AutoSSL), i Plesk SSL/TLS Certificates.
- Åpne SSL-sertifikater under domenet ditt og velg Gratis og automatisk sertifikat fra Let's Encrypt.
- Kryss av for
example.comogwww.example.comog bestill sertifikatet. - Under domeneinnstillingene, kryss av for alltid å sende besøkende til https (i DirectAdmin: Tving SSL med https-omdirigering). Bruk bare én metode for videresending: to forskjellige samtidig kan gi en runddans («for mange omdirigeringer»).
- Gå til Innstillinger > Generelt i WordPress og sett begge adressene til
https://.
Oppsummering
- Https krypterer alt mellom nettleser og server; sertifikatet beviser hvem serveren er.
- Gratis sertifikater fra Let's Encrypt har kort gyldighet og fornyes automatisk; de må dekke hvert navn en besøkende skriver inn.
- WordPress-adresse (siteurl) og nettstedsadresse (home) må begge stå på
https://. - Blir du utestengt på grunn av en feil adresse, kan du rette det opp med WP_HOME og WP_SITEURL i wp-config.php eller i phpMyAdmin.
- HSTS er et godt tilleggssteg; begynn med kort gyldighet.
Quiz
Oppgave
Oppgave A3.1: Stemmer sertifikatet ditt? Fyll inn adressen til nettstedet ditt. Programmet oppretter en TLS-forbindelse med domenet uten www og med www (hvis det finnes) og kontrollerer: er sertifikatet gyldig og tiltrodd, dekker det begge navn, er det gyldig i mer enn 14 dager, og sender nettstedet en HSTS-header? Mangler HSTS, er det oransje med forklaring, ikke en feil.
Les mer
Disse artiklene beskriver stegene i kontrollpanelene til WebOké; i andre kontrollpaneler fungerer de på lignende måte.
- DirectAdmin-veiledning 6.1: Hva er SSL, og hvordan ordner WebOké det?
- DirectAdmin-veiledning 6.2: Be om et gratis Let's Encrypt-sertifikat
- DirectAdmin-veiledning 6.3: Sertifikat for www, subdomener og wildcard
- DirectAdmin-veiledning 6.4: Besøkende alltid sende til https
- Aktivere, fornye og feilsøke SSL-sertifikat
- Forskjellen på et gratis og et betalt sertifikat
- Gratis DNS-kurs 5.2: CAA: hvem har lov til å utstede sertifikater?
