Modul 3 · 3.1
Https og certifikatet
Modul 3: Adresse, https og brugere · Læsetid: 8 minutter
Læringsmål: Efter denne lektion kan du sætte et WordPress-websted helt om på https, og du ved hvad WordPress-adressen og webstedsadressen gør.
Nøglebegreber: TLS, certifikat, Let's Encrypt, automatisk fornyelse, WordPress-adresse (siteurl), webstedsadresse (home), WP_HOME og WP_SITEURL, HSTS, at blive låst ude
Hvad https gør
Med https bliver alt mellem browser og server krypteret: adgangskoder, formularer, cookies, også almindelige sider. Uden https kan alle på samme netværk (et offentligt wifi, en kapret router) læse med og endda ændre siden. Browsere viser et websted uden https som "ikke sikkert", og nogle funktioner (som placering eller kameraet) virker kun med https.
Krypteringen hedder TLS. For at bevise at browseren rent faktisk taler med example.com og ikke med en mellemmand, har serveren et certifikat: et digitalt bevis, underskrevet af en udsteder som browsere stoler på. Certifikatet angiver hvilke navne det gælder for, og indtil hvornår.
Gratis certifikater og fornyelse
Let's Encrypt udsteder gratis certifikater. Næsten alle hostingudbydere bestiller dem automatisk og fornyer dem også automatisk. Et certifikat fra Let's Encrypt er nu gyldigt i 90 dage, og Let's Encrypt har annonceret at de trin for trin vil forkorte gyldigheden til 45 dage. Manuel fornyelse er derfor ikke en mulighed: det skal foregå automatisk.
Et betalt certifikat krypterer ikke bedre. Forskellen ligger i ekstra kontrol af organisationen (og nogle gange en garanti). For de fleste websteder er et gratis certifikat helt fint.
Det du skal være opmærksom på:
- Certifikatet skal dække alle navne en besøgende kan taste:
example.comogwww.example.com. Også det navn der kun omdirigerer, for browseren kontrollerer certifikatet før omdirigeringen. - Automatisk fornyelse lykkes kun hvis DNS peger på din server. Har du flyttet DNS'en eller sat en proxy (som Cloudflare) foran, så kontroller om fornyelsen stadig virker.
- Et CAA-record i DNS'en kan bestemme hvilke udstedere der må oprette certifikater. Står Let's Encrypt ikke der, mislykkes anmodningen (DNS-kursus lektion 5.2).
To adresser i WordPress
Under Indstillinger > Generelt findes to adresser. De virker overflødigt ens, men betyder noget forskelligt:
| Felt | I databasen | Betydning |
|---|---|---|
| WordPress-adresse (URL) | siteurl | Hvor WordPress-filerne ligger (wp-admin, wp-includes) |
| Webstedsadresse (URL) | home | Adressen besøgende bruger |
Som regel er de ens, for eksempel begge https://example.com. De er kun forskellige hvis WordPress ligger i en undermappe, men webstedet skal vises på hovedmappen.
WordPress bruger disse adresser til at bygge alle links: til sider, stylesheets, billeder, kontrolpanelet. Står der http:// her, bygger WordPress sider med http://-links, også selvom den besøgende kommer ind via https. Det giver blandet indhold (lektion 3.2) og omdirigeringer frem og tilbage.
Sådan sætter du et websted om til https
Har du et eksisterende websted på http, er trinnene disse:
- Bestil et certifikat til begge navne, og kontroller at
https://example.comvirker (du ser så en WordPress-side, måske stadig uden formatering). - Lav en backup (lektion 8.1).
- Sæt begge adresser under Indstillinger > Generelt til
https://, og gem. Du bliver logget ud; log ind igen via https. - Omdan gamle links i indholdet fra
http://example.comtilhttps://example.com. Brug et værktøj der forstår serialiserede data, somwp search-replaceeller en søg-og-erstat-plugin (lektion 3.2), aldrig en ren SQL-kommando. - Omdirigering: lad webserveren sende alle anmodninger på http videre til https med en 301 (lektion 3.2). Mange hostingudbydere har en afkrydsningsboks til det; ellers et par linjer i
.htaccess. - Kontroller med opgaven fra denne lektion og den fra lektion 3.2.
Låst ude: hvis adressen er forkert
Hvis du taster en tastefejl ved adresserne (htps://, et forkert domæne), sender WordPress dig efter gemningen til den forkerte adresse. Du kan ikke længere nå kontrolpanelet. Ingen panik, der er to udveje:
Via wp-config.php. Sæt følgende lige over linjen "det er slut, redigér ikke mere":
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Disse linjer går forud for værdierne i databasen. Felterne i Indstillinger > Generelt bliver da grå. Log ind, sæt de rigtige værdier i databasen, og fjern linjerne igen (eller lad dem bevidst stå, så kan ingen ved et uheld ændre adresserne via kontrolpanelet).
Via phpMyAdmin. Åbn tabellen wp_options, og ret værdierne for siteurl og home.
HSTS: lad browseren huske det
Med headeren HSTS (Strict-Transport-Security) siger serveren til browseren: "kom kun herhen via https fremover." Browseren omdanner derefter selv ethvert http:// til https://, uden først at sende en usikret anmodning.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS er et godt ekstra skridt, men med en advarsel: en browser der har set HSTS, nægter derefter at åbne webstedet uden et gyldigt certifikat, selv ikke med "fortsæt alligevel". Med includeSubDomains gælder det for hvert subdomæne. Har du et subdomæne uden certifikat (for eksempel et gammelt internt system), er det utilgængeligt efter HSTS. Begynd derfor med en kort max-age (for eksempel en dag, 86400), kontroller alt, og forlæng derefter.
I praksis: sådan ser det ud i et panel
Som eksempel bruger vi DirectAdmin. I cPanel hedder delen SSL/TLS Status (AutoSSL), i Plesk SSL/TLS Certificates.
- Åbn SSL-certifikater ved dit domæne, og vælg Gratis og automatisk certifikat fra Let's Encrypt.
- Markér
example.comogwww.example.com, og bestil certifikatet. - Markér under domæneindstillingerne afkrydsningsfeltet til altid at sende besøgende til https (i DirectAdmin: Forceer SSL med https omleiding). Brug kun én metode til omdirigering: to forskellige metoder samtidig kan give en løkke ("for mange omdirigeringer").
- Gå i WordPress til Indstillinger > Generelt, og sæt begge adresser til
https://.
Opsummering
- https krypterer alt mellem browser og server; certifikatet beviser hvem serveren er.
- Gratis certifikater fra Let's Encrypt er kort gyldige og bliver fornyet automatisk; de skal dække alle navne en besøgende taster.
- WordPress-adresse (siteurl) og webstedsadresse (home) skal begge stå på
https://. - Bliver du låst ude på grund af en forkert adresse, så ret det med WP_HOME og WP_SITEURL i wp-config.php eller i phpMyAdmin.
- HSTS er et godt ekstra skridt; begynd med en kort gyldighed.
Quiz
Opgave
Opgave A3.1: Er dit certifikat i orden? Indtast adressen på dit websted. Programmet opretter en TLS-forbindelse med domænet uden www og med www (hvis det findes), og kontrollerer: er certifikatet gyldigt og tillidsværdigt, dækker det begge navne, er det gyldigt i mere end 14 dage, og sender webstedet en HSTS-header? Mangler HSTS, er det orange med en forklaring, ikke en fejl.
Læs mere
Disse artikler beskriver trinnene i WebOkés paneler; i andre paneler fungerer de på tilsvarende vis.
- DirectAdmin vejledning 6.1: Hvad er SSL, og hvordan klarer WebOké det?
- DirectAdmin vejledning 6.2: Et gratis Let's Encrypt-certifikat anmode om
- DirectAdmin vejledning 6.3: Certifikat til www, underdomæner og wildcard
- DirectAdmin vejledning 6.4: Besøgende altid sende til https
- Aktivering, fornyelse og fejlfinding af SSL-certifikat
- Forskellen på et gratis og et betalt certifikat
- Gratis DNS-kursus 5.2: CAA: hvem må udstede certifikater?
