Alternativ för SSL i WordPress

Med det ständigt ökande fokuset på webbsäkerhet har SSL-certifikat börjat bli vanligt när man installerar webbplatser. 

Den här artikeln visar hur du implementerar SSL på din WordPress-webbplats, men kommer inte att gå in i detaljer om hur man köper och sätter upp certifikat med din webbhotell, eftersom detta ändras från leverantör till leverantör. 

Med det sagt, säljer och sätter de flesta webbhotell på SSL-certifikat för sina kunder en relativt liten avgift. För att göra några av de förändringar som beskrivs i den här artikeln måste du redan ha ett SSL-certifikat konfigurerat på din webbserver.

Vad är SSL?

SSL.com beskriver SSL som:

SSL (Secure Sockets Layer) är standard säkerhetsteknik för att skapa en krypterad länk mellan en webbserver och en webbläsare. Den här länken säkerställer att alla data som skickas mellan webbservern och webbläsarna förblir privata och integrerade.

Varför använda SSL?

säkerhet

Det finns inget sådant som att vara "för säker". SSL är nu enklare och billigare än någonsin att genomföra. Om du har en e-handelswebbplats eller behandlar användaruppgifter är det viktigt. SSL är inte bara för e-handels webbplatser heller - absolut vilken webbplats som helst kan använda den.

Förtroende

Att ha ett giltigt SSL-certifikat är en bra tillitssignal för att skicka till besökare på din webbplats. Många användare ser nu ut https i adressfältet i webbläsaren.

SEO

Detta kommer hand i hand med förtroende - Google har nu sagt att de börjar använda SSL som en rankningssignal.

En snabb ansvarsfriskrivning

Som alltid, med någon ändring på en webbplats bör du ta en fullständig säkerhetskopia först och arbeta på en interneringswebbplats innan du ändrar en levande webbplats.

Säkra WordPress Admin

Att kunna säkra baksidan av WordPress är faktiskt en funktion som är inbyggd i WordPress-kärnan. För att aktivera alternativet måste du redigera din wp-config.php fil som sitter i roten till din WordPress install. Det är viktigt att alltid säkerhetskopiera den här filen innan du redigerar, eftersom den innehåller viktiga data som gör det möjligt för din WordPress-installatör att fungera.

När du har redigerat den här filen, klickar du på FORCE_SSL_ADMIN konstant måste ställas in på Sann. Den fullständiga koden ser så här ut:

definiera ("FORCE_SSL_ADMIN", sant);

När denna rad har lagts till (kan läggas längst ner på sidan wp-config.php fil) var noga med att spara filen. En uppdatering ska visa att den nu laddas över HTTPS.

SSL Använda WordPress HTTPS-plugin

WordPress HTTPS är ett populärt val bland användare som vill använda SSL på deras WordPress-webbplats. Plugin erbjuder ett enkelt sätt att tvinga SSL från WordPress admin. Det är mest användbart om du bara vill säkra vissa delar av din webbplats (inlägg eller sidor) men kan också användas för att säkra hela din webbplats och det kan ta bort osäkra delar automatiskt.

För att installera plugin, från WordPress instrumentpanel, gå till Plugins> Add New - sök sedan efter "WordPress HTTPS" och klicka på "Installera".

Säkra enskilda inlägg / sidor

När du har installerat varje post / sida kommer du att ha en anpassad metabox som ger dig möjlighet att säkra inlägget och (eventuellt) eventuella barnposter. Kontrollera vilket alternativ som gäller för dig och spara ditt inlägg. Detta inlägg (och barnposter om du markerade det) kommer nu att serveras via HTTPS.

Säkra hela din webbplats

Att säkra hela din webbplats kan göras från WordPress HTTPS-inställningssidan. Om du klickar på WordPress HTTPS-menyikonen från WordPress-instrumentpanelen kommer du att få fram inställningssidan - jag ska köra igenom de vanligaste inställningarna:

  • Tvinga SSL-administration: Det här är en kryssruta, om du redan har följt avsnittet "Säkra WordPress-administratören" i den här artikeln kommer den att kryssas som standard. Om du inte har det, kommer kryssrutan att säkra WordPress-administratören.
  • Tvinga SSL exklusivt: Om du markerar det här kan en sida som du inte har sagt att använda SSL, vidarebefordra till standard HTTP.
  • Ta bort osäkra element: Om du markerar det tar det bort element från sidan som är otillgänglig över HTTPS. Nackdelen med denna inställning är att det kan bryta plugins för att förlita sig på externa resurser - använd detta med försiktighet.

Slutligen, nära botten av den här sidan finns ett textfält som heter "URL-filter". Med den här delen kan du säkra sektioner på din webbplats baserat på URL (det accepterar även reguljära uttryck). Exemplet som plugin ger här är om du vill säkra alla webbadresser som börjar med /Lagra/

För att göra detta skulle du skriva /Lagra/ in i textrutan och klicka på "Spara ändringar". För varje nytt filter du skapar måste du starta en ny rad. Inställningen "Säkra filter" kan också användas för att göra plugin säkra hela din webbplats. Lägg bara till ett filter som är ett framåt snedstreck (/). Nu vem som helst som försöker komma åt med hjälp av HTTP omdirigeras till HTTPS. Det är en bra idé att ändra dina vanliga WordPress-URL-inställningar också om du serverar hela din webbplats via HTTPS. Detta förklaras i nästa avsnitt i artikeln.

Uppdatering: Användare har rapporterat problem med detta plugin och WordPress 4.0 - det rekommenderas att du inte använder den här lösningen tills dessa problem har lösts. Vänligen se nedan för en alternativ plugin lösning.

SSL Använda iThemes Security Plugin

iThemes Security är en av de mest populära WordPress-säkerhetsprogrammen som finns tillgängliga. Den har många funktioner ur lådan för att säkra din WordPress-webbplats, inklusive möjligheten att använda HTTPS.

Varning: Denna plugin är mycket kraftfull och vissa av inställningarna kan ha möjlighet att blockera dig från din webbplats. För den grundläggande installationen av plugin rekommenderar jag att du tittar på den officiella iThemes-videon.

När du har installerat och konfigurerat pluginet (se ovanstående video) - gå in på din WordPress-kontrollpanel, klicka på fliken "Säkerhet" och sedan länken "Inställningar"..

Från "Gå till" -menyn, klicka på "SSL-säkerhetskopior" som ska tas till rätt avsnitt av inställningarna.

Det finns tre inställningar i det här avsnittet:

  1. Front End SSL Mode: Den här nedrullningen har tre alternativ:
  • Av - ingen front-end SSL
  • Per Innehåll - Du kan välja specifika inlägg som ska säkras av SSL
  • Hela sajten - hela framsidan är säkrad
  • Tvinga SSL för inloggning: Om du markerar den här rutan kommer alla inloggningar att visas över HTTPS
  • Kräv SSL för Dashboard: Om du markerar den här rutan tvingas din WordPress instrumentpanel att använda HTTPS
  • Den mest användbara delen av plugin är möjligheten att säkra specifikt innehåll på fronten; Om du vill säkra hela webbplatsen är .htaccess-lösningen förmodligen den säkrare satsningen.

    När du har gjort dina alternativ här, se till att klicka på "Spara alla ändringar" -knappen.

    Om du har valt alternativet "per innehåll" så kommer du nu att se en kryssruta i publiceringsmetaboxen på inlägg. Markera bara detta och klicka på "Uppdatera" för att få den här sidan säkrad.

    Begränsningarna för att använda iThemes-säkerhet för SSL är att det inte tillåter jokertecken, så att du inte kan skapa filtregler.

    SSL Använd kod

    Den här metoden är bra för alla som vill tjäna hela sin webbplats via HTTPS. I huvudsak är det vi behöver göra här omdirigera all trafik från HTTP till HTTPS, med 301-koden (permanent flyttad). Detta kan göras med PHP men min föredragna metod är att använda .htaccess. För att den här lösningen ska fungera behöver du en Apache-värd med mod_rewrite aktiverad - de flesta Linux-värdar är, men fråga din värd innan du gör några ändringar.

    Innan du gör något .htaccess ändringar, det finns några WordPress-inställningar som vi behöver ändra. Gå till Inställningar> Allmänt från WordPress-instrumentpanelen. Under "WordPress Address (URL)" och "Site Address (URL)" måste du ändra webbadressen så istället för http://www.yourdomain.com det står https://www.yourdomain.com (notera https). När detta är klart, rulla ner och klicka på "Spara ändringar" -knappen. Detta berättar att WordPress använder HTTPS i alla webbadresser men slutar inte ännu att få tillgång till webbplatsen med hjälp av HTTP. Det är här .htaccess filen kommer in.

    Om du har permalinks aktiverade har du redan en .htaccess filen som finns i rotkatalogen i din WordPress-installation. Om du inte gör det måste du göra en - för att göra detta, skapa en ny fil med namnet .htaccess - den här filen borde inte ha något annat namn eller tillägg. .htaccess filer är punktfiler eller dolda filer, så du kan behöva aktivera visning av dolda filer i operativsystemet för att se dem.

    Öppna sedan din .htaccess filen med din textredigerare. Om du inte har permalinks aktiverade, så är din .htaccess filen kan vara tom. Om du har permalinks aktiverade kanske du redan har någon kod in där som ser ut så här:

    # BEGIN WordPress  RewriteEngine On RewriteBase / secure / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /secure/index.php [L]  # END WordPress

    Vi kommer att lägga till lite mer kod här. Direkt ovanför standard WordPress-koden klistra in i följande:

    # Börja HTTPS  RewriteEngine On RewriteCond% SERVER_PORT 80 RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R, L]  # END HTTPS

    Kom ihåg att ersätta https://www.yourdomain.com/ med ditt faktiska domännamn. Om du har en blank .htaccess fil så lägg bara koden rakt in i filen.

    De första och sista raderna i denna kod med hashsymbolen (#) är kommentarer och finns där för att göra koden mer mänsklig läsbar. De kontrollerar att mod_rewrite modulen är aktiverad eftersom denna kod bygger på mod_rewrite för omdirigering. Vi ser då till att RewriteEngine är inställd på On eftersom vi behöver omskrivningsmotorn för att skapa våra omdirigeringar. Därefter ställer vi ett villkor för vår omskrivning vilket innebär att regeln som vi skapar bara kommer att köras om den är tillgänglig på port 80 (port 80 är standard HTTP-port). Slutligen omdirigerar RewriteRule användarna till HTTPS-versionen av domänen.

    För att testa att detta fungerar korrekt kan du försöka besöka din webbplats med en HTTP-URL - om den automatiskt ändras till HTTPS då fungerar den här korrekt.

    Vilken lösning ska vi använda?

    Det finns inget rätt eller fel svar här. Det kan hävdas att förlita sig på en plugin för en sådan integrerad del av din webbplats kanske inte är den bästa idén, som om plugin är inaktiverad, raderad eller har en dålig uppdatering så kan det få några allvarliga konsekvenser för din webbplats. 

    Med detta sagt har WordPress HTTPS-plugin ett gott rykte med många nedladdningar och är naturligtvis öppen källkod. Använda WordPress HTTPS-plugin är det enklaste sättet om du bara vill ställa in vissa delar av din webbplats för att vara HTTPS.

    Å andra sidan är kodmetoden snyggt och enkelt om du är bekväm med att göra några enkla ändringar i filer och är en pålitlig metod för att hela webbplatsen ska köras över HTTPS.

    Några utvecklare Gotchas

    För att din webbplats SSL ska vara giltig måste allt ditt innehåll skickas över SSL. Detta inkluderar, men är inte begränsat till, skript, teckensnitt, styleheets, embeds och bilder. Vissa reklambyråer skickar ännu inte innehåll över HTTPS, så om så är fallet, har det inte mycket val, även om det är möjligt att ha några sidor HTTPS och annan HTTP som förklaras tidigare i artikeln.

    För att undvika denna huvudvärk kan du använda en protokollrelativ URL. Låt oss till exempel säga att vi begär den populära Google-webbfonten 'Open Sans':

    Lägg märke till bristen på HTTP eller HTTPS längst fram på den webbadressen? Vad detta gör är att begära tillgången med samma protokoll som sidan. Så, om du använder HTTPS, kommer det automatiskt att begära HTTPS-versionen av webbfonten. Om HTTPS-versionen inte finns kommer den att använda HTTP. Det finns några små tillvägagångssätt för denna teknik som förklaras i en artikel av Paul Irish. För det mesta fungerar det bra men och kommer att lösa lite huvudvärk - det fungerar också i CSS.

    Felsökning av HTTPS-fel

    HTTPS-fel orsakas ofta av att sidan även serverar icke-HTTPS-innehåll. För att ta reda på det förekommande innehållet kan Google Chrome användas för att felsöka.

    För att identifiera en felaktig sida i Google Chrome ser du en gul triangel över hänglåset i adressfältet. Om du klickar på det här visas det exakta felet som visas nedan:

    För att ta reda på det förekommande innehållet på den här sidan så att det kan åtgärdas väljer du Visa >> Utvecklare >> JavaScript-konsol. Du bör nu se några fel som de som visas nedan:

    Det här felet visar dig den exakta filen som orsakar problemet (i det här fallet http://en.support.files.wordpress.com/2008/12/def-avatar.png) och linjenummeret där innehållet visas ( 316). Detta innehåll skulle helt enkelt behöva ändras till HTTPS (tillhandahåller servern innehållet är på stöder HTTPS) eller använd en protokolls relativ URL som förklaras tidigare i den här artikeln.

    Slutsats

    Du kommer nu att kunna fatta beslut om vilken är den bästa metoden för dig att använda HTTPS på din WordPress webbplats och implementera din favoriserade lösning.