WP Migrate DB Pro (Dansk)
Opsætning af HTTPS lokalt kan være en vanskelig forretning. Selvom det lykkes dig at kæmpe selvsignerede certifikater til indsendelse, ender du stadig med browserbeskyttelsesfejl. I denne artikel gennemgår vi oprettelse af din egen certifikatmyndighed til dine lokale servere, så du kan køre HTTPS-websteder lokalt uden problemer.
Hvorfor HTTPS lokalt?
Hvorfor ikke bare bruge almindelig HTTP lokalt? Fordi hvis dit produktionssted kun er HTTPS, og du udvikler lokalt på almindelig HTTP, er dine udviklings- og produktionsmiljøer ikke så ens som de kunne være. For eksempel kører mit udviklingsmiljø for dette websted (deliciousbrains.com) som en Ubuntu-server i en VMware virtuel maskine (VM) på sin Mac. Produktionsstedet er en Ubuntu-server, der kører på Linode med en næsten identisk konfiguration.
Du vil bestemt have, at dit dev-miljø skal spejle produktionen så tæt som muligt.
Når det ikke er tilfældet, inviterer du flere problemer dukker op i produktion, der ikke dukkede op i dev. At køre HTTP, når dit produktionswebsted kun er HTTPS, er bestemt en unødvendig risiko.
Men at prøve at få et SSL-certifikat, der fungerer sammen med din lokale server, er lidt stinkende, hvis du ikke bruger et værktøj, der håndterer det for dig som Valet.
Hvis du nogensinde har prøvet at køre et HTTPS-websted lokalt, har du sandsynligvis set noget i retning af følgende i Chrome:
Midlertidig løsning oprettede et selvsigneret certifikat og brugte det. MAMP Pro gør dette for dig og var min favorit i årevis. Desværre er det ikke længere muligt. Den moderne tilgang er at blive din egen Certificate Authority (CA)!
Sådan fungerer det
For at anmode om et SSL-certifikat fra en CA som Verisign eller GoDaddy, skal du sende dem en Certificate Signing Anmodning (CSR), og de giver dig et certifikat til gengæld, som de underskrev ved hjælp af deres rodcertifikat og private nøgle. Alle browsere har en kopi (eller få adgang til en kopi fra operativsystemet) af Verisigns rodcertifikat, så browseren kan kontrollere, at dit certifikat blev underskrevet af en betroet CA.
Det er derfor, når du genererer en selv- underskrevet certifikat, browseren stoler ikke på det. Det er selvsigneret. Det er ikke underskrevet af en CA. Men vi kan generere vores eget rodcertifikat og private nøgle. Vi tilføjer derefter rodcertifikatet til alle de enheder, vi ejer, én gang, og derefter er alle certifikater, som vi genererer og underskriver, i sig selv tillid.
At blive en (lille) certifikatmyndighed
Det er lidt latterligt, hvor let det er at generere de filer, der er nødvendige for at blive en certifikatmyndighed. Det tager kun to kommandoer. Først genererer vi vores private nøgle:
Du bliver bedt om at angive en adgangskode, som jeg anbefaler ikke at springe over og holde sikker. Adgangssætningen forhindrer alle, der får din private nøgle, fra at generere et eget rodcertifikat. Output skal se sådan ud:
Så genererer vi et rodcertifikat:
Du bliver bedt om adgangsfrasen til din private nøgle (som du lige har valgt) og en masse spørgsmål. Svarene på disse spørgsmål er ikke så vigtige. De dukker op, når man ser på certifikatet, hvilket du næsten aldrig vil gøre. Jeg foreslår, at du gør det almindelige navn til noget, som du genkender som dit rodcertifikat på en liste over andre certifikater. Det er virkelig det eneste, der betyder noget.
Du skal nu have to filer: myCA.key (din private nøgle) og myCA.pem (dit rodcertifikat ).
🎉 Tillykke, du er nu CA. Sort.
For at blive en ægte CA skal du få dit rodcertifikat på alle enheder i verden. Lad os starte med dem, du ejer.
Installation af dit rodcertifikat
Vi skal tilføje rodcertifikatet til alle bærbare computere, desktops, tablets og telefoner, der får adgang til dine HTTPS-sider. . Dette kan være lidt smertefuldt, men den gode nyhed er, at vi kun skal gøre det en gang. Når vores rodcertifikat er på hver enhed, vil det være godt, indtil det udløber.
Tilføjelse af rodcertifikatet til macOS nøglering
Via CLI
Via brugergrænsefladen
- Åbn macOS nøglering-appen
- Gå til fil > Importer elementer …
- Vælg din private nøglefil (dvs. myCA.pem)
- Søg efter hvad du svarede som navnet på det almindelige navn ovenfor
- Dobbeltklik på dit rodcertifikat på listen
- Udvid tillidsafsnittet
- Skift Når du bruger dette certifikat: vælg feltet til “Altid Tillid ”
- Luk certifikatvinduet
- Det beder dig om at indtaste din adgangskode (eller scanne din finger), gør det
- 🎉 Fejr!
Tilføjelse af rodcertifikat til iOS
Hvis du vil føje rodcertifikatet til dine iOS-enheder, kan du gøre det ret let ved at følge disse trin:
- E-mail rodcertifikatet til dig selv, så du kan få adgang til det på din iOS-enhed
- Klik på vedhæftet fil i e-mailen på din iOS-enhed
- Gå til indstillingsappen og klik på ‘Profil downloadet’ øverst
- Klik på installer øverst til højre
- Når du er installeret, skal du trykke på luk og gå tilbage til hovedsiden Indstillinger
- Gå til “Generelt” > “Om”
- Rul ned til bunden og klik på “Certificate Trust Settings”
- Aktivér dit rodcertifikat under “AKTIVER FULDTILLID TIL ROODCERTIFIKATER”
Oprettelse af CA-signerede certifikater til din Dev Sites
Nu hvor vi er en CA på alle vores enheder, kan vi underskrive certifikater for alle nye dev-sites, der har brug for HTTPS. Først opretter vi en privat nøgle:
Derefter opretter vi en CSR:
Du får alle de samme spørgsmål som du gjorde ovenfor, og igen betyder dine svar ikke noget. Faktisk betyder de noget mindre, fordi du ikke ser på dette certifikat på en liste ved siden af andre.
Derefter opretter vi certifikatet ved hjælp af vores CSR, den private CA-nøgle, CA-certifikatet og en konfigurationsfil, men først er vi nødt til at oprette denne konfigurationsfil.
Konfigurationsfilen er nødvendig for at definere SAN-udvidelsen (Subject Alternative Name) som er defineret i dette afsnit (dvs. udvidelse) af certifikatet:
Konfigurationsfilen (dev.deliciousbrains.com. ekst) indeholdt følgende:
Vi kører kommandoen openssl x509
fordi efter hvad jeg forstår, kommandoen x509 er nødvendig for at udføre signaturen med rodcertifikatet og den private nøgle. Jeg fandt dette eksempel på en konfigurationsfil på Stack Overflow, og det ser ud til at fungere.
Nu kører vi kommandoen for at oprette certifikatet:
Jeg kan nu konfigurere min webserver med den private nøgle og certifikatet. Hvis du kører en Linux-server, kan du bruge instruktionerne i vores Installer WordPress på Ubuntu 20.04-serien. Hvis du bruger MAMP, kan du vælge certifikatet og nøglefiler ved hjælp af brugergrænsefladen:
Desværre opretter MAMP (testet med version 5.7) ikke SSL-certifikater med en CA, så du bliver nødt til at bruge den manuelle metode indtil nu.
For andre dev-websteder kan vi bare gentage denne sidste del af oprettelsen af et certifikat, vi behøver ikke oprette en ny CA for hvert websted.
Shell-script
For at gøre tingene endnu hurtigere er her et praktisk shell-script, du kan ændre til dine egne formål:
Konklusion
Så der har du det, hvordan du bliver dit eget lokale certifikat myndighed til at underskrive dine lokale SSL-certifikater og bruge HTTPS på dine lokale websteder. Forhåbentlig fjerner den frygtede meddelelse “Din forbindelse er ikke privat” i Chrome.