Der er flere gode grunde til at få sine hjemmesider til at køre på en sikker forbindelse (https://…) også kaldet SSL. For det første er der sikkerhedsaspektet; trafik mellem dig og en hjemmeside, hvis adresse starter med ‘https’ er krypteret og kan ikke ses af andre.
Hvis du sidder på et åbent trådløst netværk, er der en risiko for, at andre kan kigge med og se, hvad du henter, som ikke er krypteret. Det kan være billeder fra hjemmesider, men det kan også være din e-mailadresse eller logind-oplysninger til forskellige steder.
En anden fordel (omend den er lille) er, at Google angiveligt rangerer https-sider højere end http. Nu er min hjemmeside ikke den store endestation for en masse Google-trafik, så det er nok mest, hvis man er et større site, (for eksempel et medie eller en online-butik) man har mest at hente på den front.
Men skønt der måske ikke umiddelbart er de store vindinger ved at larskjensen.dk kører på en sikker forbindelse (du logger jo for eksempel ikke ind for at læse), så synes jeg, at det også bare er mere tjekket, at en side kører på https. Den lille hængelås i din browsers adressefelt symboliserer en eller anden form for tillid, synes jeg.
Sådan gjorde jeg
Hvis du nu sidder og tænker, at du også gerne vil have dit site til at køre https, vil jeg selvfølgelig gerne dele, hvordan jeg gjorde det.
For det første skal jeg skynde mig at sige, at jeg bruger Content Management-systemet (CMS) WordPress, som du selv kan hente fra wordpress.org. Så derfor tager denne lynguide udgangspunkt i dét system. Sidder du i et andet CMS, er det nok derfor begrænset, hvad du kan hente herfra.
Step 1: Tjek dine URL’er, scripts etc.
Inden du gør mere, er det altid værd at tjekke, om du inkluderer/bruger mange ting, der bruger en http-forbindelse. Årsagen er, at de fleste browsere brokker sig (eller deaktiverer den sikre forbindelse), hvis der er usikre elementer på en sikker forbindelse.
Her skal du kigge på ting som stylesheets, scripts og billeder – egentlig alt du hiver ind til din hjemmeside fra resten af internettet. Billeder fra dit eget site behøver du dog ikke bekymre dig om, de får jo https, når resten af dit site gør det. (Her er dog en pointe, jeg vender tilbage til senere…) Men tredjepartsindhold er værd at kigge på.
Umiddelbart vil langt de fleste ting dog formentlig fungere fint – indlejringer/embeds fra steder som YouTube kører allerede https. Men tjek alligevel. Finder du noget, der ikke kører på en sikker forbindelse, kan du undersøge, om udbyderen måske har en sikker udgave af det – her er første step at prøve at ændre http til https i URL’en.
Step 2: Få et Certifikat
Som det næste skal du have et certifikat. Det er informationerne om dette certifikat, folk kan komme frem til, hvis de trykker på hængelåsen i deres browser, og det er certifikatet, der sikrer dig den sikre forbindelse.
Jeg er så heldig, at One.com (som jeg bruger som hosting til min hjemmeside – de er ikke i den dyre ende, men jeg har altid været tilfreds med dem) faktisk tilbyder SSL – her kan du læse, hvordan du gør, hvis du er One.com-kunde.
Hvis ikke, må du ud og have et certifikat. Denne guide fra Designmodo giver dig nogle tips til, hvordan du kan gøre. Som nævnt fik jeg nemt et certifikat, så jeg skulle ikke ud på denne lille rejse.
Step 3: Aktivér https i WordPress
Okay. Nu har du tjekket, at du ikke har http-afhængigheder længere, og du har dit certifikat klart. Nu skal du ind i WordPress’ indstillinger. Når du er i WordPress-administrationen trykker du på ‘Indstillinger’ ude til venstre.
Her er der to steder, du skal ændre noget:
- WordPress-adresse (URL)
- Webstedsadresse (URL)
Hvis du er som rigtig mange andre WordPress-brugere, står der det samme ud for de to felter. Her skal du ændre “http” til “https”. I mit tilfælde står der således “https://larskjensen.dk” ud for både WordPress- og webstedsadresse.
Tryk “Gem ændringer” nederst. Så bliver du formentlig logget ud igen – du logger bare ind igen. Nu skal din hjemmesideadresse meget gerne starte med “https”.
Tillykke – så langt, så godt. Nu begynder det sjove.
Step 4: På jagt – har du noget “mixed content”?
“Mixed content” (eller blandet indhold) er det, jeg beskrev ovenfor: Hvis du på en https-side henter indhold (fx et script eller et billede) via en gammeldaws http-forbindelse. Som sagt, browserne brokker sig over det, så nu skal du på jagt og i gang med at rydde ud.
Jeg vil anbefale, at du både klikker lidt rundt, men også bruger nogle værktøjer. Jeg hev for eksempel fat i ‘SSL Check’, der giver dig besked, hvis dit site hiver usikkert indhold fra en sikker forbindelse. Den hjalp mig med at finde nogle billeder, der drillede.
Men i mit tilfælde var der stadig et problem. Googles Chrome-browser blev ved med at have et lille ikon i højre side af adressefeltet og sige, at hjemmesiden forsøgte at hente scripts via en usikker/uautoriseret forbindelse. Det lyder jo meget dramatisk, så det skulle jeg selvfølgelig gøre noget ved. Der er ingen pointe i at have en hængelås, hvis der samtidig er en advarsel af den kaliber.
Der var altså mere “mixed content”. Heldigvis var det ret nemt at finde ud af:
Jeg åbnede Chrome-browseren og åbnede et nyt faneblad. Uden at gå til nogen side højreklikkede jeg og valgte “Inspect”, så udviklerværktøjere dukker op. Så åbnede jeg det faneblad, der hedder “Console” – og så gik jeg ind på larskjensen.dk.
Og bum! Så var der en “mixed content”-alarm til mig. Det drejede sig om et stylesheet, jeg hentede ind fra Mailchimp (som jeg bruger til mit nyhedsbrev og derfor også formularerne til dette) via http fra mit eget stylesheet.
Løsningen var, at jeg åbnede den http-URL fra Mailchimp, der drillede og ændrede “http” til “https”. Den virkede fint. Super, så fandt jeg det sted i WordPress, hvor jeg har lavet de CSS-rettelser, der henter stylesheet’et og opdaterede også til “https” i Mailchimp-URL’en der.
Jeg tjekkede derefter i Chrome igen – og nu var der ingen advarsler længere. Fedt.
Bemærk: Billeder i artikler og på sider
Her vil jeg lige dvæle lidt ved billeder fra din egen hjemmeside, som jeg tidligere i denne guide lovede at vende tilbage til. Hvis du har brugt billeder i din brødtekst (altså i den tekst, du har skrevet i dine artikler), har jeg oplevet, at WordPress ikke automatisk ændrer dem til https.
Årsagen til dette er, at når WordPress indsætter et billede, så bruger det absolutte URL’er i stedet for relative. Det vil egentlig bare sige, at WordPress bruger hele URL’en (inklusiv “http”), når den skal finde billedet. Hvis det i stedet foregik relativt, ville WordPress kigge i en specifik mappe på din hjemmeside.
Det kan lyde teknisk – men det ændrer ikke på, at hvis du finder ud af dette, må du ændre det. Det kan gøres ved at åbne hver artikel (gys!) og trykke på “Tekst” (i stedet for “Visuel”) oppe i højre hjørne der, hvor du skriver og redigerer din tekst.
Find det eller de steder i teksten, hvor der er indlejret billeder med “http” og sæt et “s” på.
Dette kan nærmest med garanti automatiseres, men jeg har ikke erfaringer med et redskab til det lige pt. Jeg er dog faldet over en artikel med den lovende titel “Replacing Image Links in WordPress After Installing an SSL Certificate”. Du skal køre nogle forespørgsler på din database (hvor WordPress opbevarer dine indlæg og sider), der kører søg og erstat på billed-URL’erne.
Der er også nævnt nogle WordPress-udvidelser i den artikel.
Derudover påstår WordPress-udvidelsen ‘SSL Insecure Content Fixer’ også, at den kan hjælpe dig. Jeg har ikke selv prøvet det, og jeg vil nok være forsigtig med at lade tredjepartsteknologi (som WordPress-udvidelser/-plugins trods alt er) røre ved dit indhold på denne måde.
Men det er selvfølgelig op til dig.
Step 4: Aktivér redirects/omdirigering
Når du har styr på det ovenstående, er du nået dertil, hvor du skal sikre, at folk altid lander på den sikre udgave af din hjemmeside. Hvis nogle klikker på et link til dem gamle http-udgave, bliver de nemlig ikke automatisk ført til https-versionen.
Dette kan (selvfølgelig) gøres med WordPress-udvidelser, men igen er det ikke noget, jeg vil anbefale. Vi har at gøre med URL’erne på dit site, og det skal helst kun være dig og WordPress, der håndterer dem. Og mest dig.
I stedet kan du give den server (hvor din hjemmeside) ligger besked om, at den skal videresende eller omdirigere trafik til http-versionen til den nye, sikre udgave. Det gør du ved at redigere i .htaccess-filen, som ligger i samme mappe på serveren, som din WordPress-installation. Hvis du har WordPress liggende i det, man kalder “roden” (altså at din hjemmeside adresse kun er domænenavn, fx flothjemmeside.dk), finder du den der. Hvis adressen til din WordPress-hjemmeside derimod er flothjemmeside.dk/blog, så skal du kigge der.
(Jeg skal her skynde mig at tilføje, at jeg ikke har den store erfaring med at have WordPress kørende i undermapper og arbejdet med underliggende .htaccess-filer. Så hvis jeg i det følgende skriver noget vrøvl (og du ved bedre), må du meget gerne lægge en kommentar herunder ?.)
Filen er nogle steder skjult, så hvis du forbinder til din server med et FTP-program skal du have det til at vise alle filer. Når du henter .htaccess-filen ned til din computer, kan du også opleve, at den bliver skjult. Så må du finde ud af, hvordan du får vist skjulte filer på Windows, Mac (hint: SHIFT+CMD+.) eller hvad du nu bruger.
Tag lige et backup af .htaccess-filen, du lige har hentet ned. Lav en “Backup”-mappe eller lignende, der hvor du har hentet den til, og læg en kopi der. Just in case.
Nu skal du åbne filen i et rent tekstprogram (er du på Windows, kan jeg anbefale Notepad++ – på Mac kan man bruge ‘textEdit’) og tilføje nogle linjer.
Der findes et hav af bud på, hvad du skal skrive for at få omdirigeringen til at virke, og jeg har prøvet mange af dem, men jeg fik konstant en advarsel om, at min hjemmeside lavede for mange omdirigeringer (“too many redirects”), og det snubler en browser over, og så henter den ingenting.
De nedenstående linjer er derfor dem, jeg fik til at fungere. Hvis de ikke virker for dig, må du Google og forsøge dig frem. Desværre.
Følgende linjer satte jeg ind i .htaccess under “RewriteBase /” og over “RewriteRule ^index\.php$ – [L]”:
RewriteCond %{ENV:HTTPS} !=on RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
(…og jeg fandt dem på Stack Overflow)
Nu uploader du den redigerede .htaccess-fil og siger ja til at overskrive den gamle (du har selvfølgelig husket at gemme en kopi, hvis det nu gik galt…).
Og så… skulle det gerne virke. Sker der ingenting, kan det være, du skal vente lidt (hvis en browser eller serveren har cachet den gamle .htaccess, skal den lige udløbe), men det kan også være, at du har sat noget kode ind, der faktisk ikke ændrer noget – det har jeg også oplevet.
Har du en fejl, så uploader du kopien af .htaccess (så dit site i det mindste virker) og prøver igen på en anden måde.
Det var irriterende “trial and error” for mig, men til slut fik jeg det til virke.
Denne guide fra Designmodo anbefaler i øvrigt, at du ændrer i din ‘wp-config.php’-fil, så den inkluderer linjen:
define('FORCE_SSL_ADMIN', true);
Dette tvinger WordPress-administrationen til at bruge SSL/https – men hos mig fungerede det også uden denne ændring.
***
Hvis alt er gået vel, er du nu samme sted som jeg: En hjemmeside, der kører https og har en fin hængelås i browseren. Hvis ikke, skal jeg lige skynde mig at nævne, at jeg ikke kan yde support – men du kan heldigvis få hjælp rigtig mange andre steder på nettet.
Foto: Pexels / Pixabay
Kan du lide, hvad du læste?
Følg mine artikler på Facebook ?
…eller:
Følg med på mail
…og få overblik, tips og ny viden om medier og teknologi direkte i din indbakke ? ?
Bemærk: Du får ikke en mail, så snart, jeg har udgivet nyt – i stedet samler jeg op og sender dig lidt at læse hver weekend. Hvis du vil følge med og vide det, så snart, der er nyt skal du følge med via RSS-feed’et.