Beginnersgids voor SSL-webserver-website
Bij het bouwen van een webtoepassing die zich bezighoudt met persoonlijke gegevens, heeft beveiliging de eerste prioriteit. Dit geldt niet alleen voor online winkels en winkelwagentjes, maar ook voor populaire sociale netwerken zoals Twitter en Foursquare. SSL is een beveiligd protocol net als HTTP, omdat het gegevens via internet kan ontvangen en overbrengen.
Het hele concept is weliswaar een beetje ingewikkeld, maar niet zo moeilijk te begrijpen. Als u een webmaster bent of iemand die alleen geïnteresseerd is in het leren over SSL-certificaten, zou deze gids perfect voor u moeten zijn. Ik heb deze set van de meest verwarrende termen samengesteld om te lay-out voor beginners. Besteed wat tijd aan het bladeren hier en lees ook andere externe artikelen over het onderwerp. Beveiliging is essentieel voor het succes van elke website en SSL is slechts een opstapje naar het grotere geheel.
Wat is SSL?
SSL-protocol staat voor Secure Socket Layers en werd oorspronkelijk ontwikkeld door Netscape. Het is een proces waarbij gegevens die tussen de gebruiker en de server worden doorgegeven, worden gecodeerd / gedecodeerd, zodat geen externe derde partij de verbinding kan kapen.
SSL gedraagt zich als een digitaal paspoort dat de referenties van zowel uzelf als de eindwebserver verifieert. Wanneer beide identiteiten worden geverifieerd, verleent SSL een beveiligde verbinding via HTTPS. Dit proces wordt uitgevoerd met behulp van certificaten. Ik heb de belangrijkste aspecten van een SSL-certificaat opgesplitst, waaronder:
- De naam van de eigenaar
- Certificaat serienummer gebruikt voor identificatie
- Vervaldatum van het certificaat
- De openbare sleutel van het certificaat die wordt gebruikt om informatie te coderen
- De privésleutel van het certificaat die wordt gebruikt om informatie te decoderen (meestal afkomstig van een webserver)
U hoeft het gebruik van al deze informatie niet volledig te begrijpen. In sommige gevallen ontvangt u een certificaat met nog meer informatie. Maar toch zal geen van het direct de gebruiker beïnvloeden; het beïnvloedt alleen de verbinding tussen de server en de externe computer.
Een certificaat opstellen
U kunt het meest waarschijnlijk achterhalen hoe SSL werkt. Het is een meer complexe vorm van het doorgeven van gegevens, zoals het overbrengen van een bericht in een vergrendelde kluis. Het is niet nodig om de belangrijkste elementen van een SSL-certificaat te onthouden of om te leren hoe het verbonden is met een webserver, maar het is goed om op zijn minst de basis van het proces te begrijpen voordat u uw eigen.
SSL-certificaten worden daadwerkelijk gekocht bij een aantal betrouwbare leveranciers op internet. Elk certificaat heeft een vervaldatum, wat betekent dat je het moet vernieuwen om je website beveiligd te houden (meestal is dit elk jaar). Het lijkt een hele klus om mee om te gaan, maar gelukkig zullen veel populaire webhosts zoals FatCow je helpen bij het instellen.
Eerst moet u een CSR- of Certificate Signing Request op uw eigen webserver genereren. De CSR is nodig voordat u een SSL-cert kunt verkrijgen. Het is mogelijk om dit zelf te maken als u over volledige beheerdersrechten op de webserver beschikt. Het is echter ten zeerste aan te raden eerst contact op te nemen met uw webhost, omdat u dit waarschijnlijk niet alleen kunt doen. Daar is geen kwaad aan, sterker nog, het maakt je werk eigenlijk veel gemakkelijker!
Nadat u dit gecodeerde CSR hebt, kunt u contact opnemen met een certificaatprovider. Er zijn slechts een handvol vertrouwde leveranciers zoals Verisign of Thawte. Zodra u het certificaat hebt gekocht, neemt u gewoon contact op met uw webhost-ondersteuning en zij zullen het graag voor u installeren.
Verschillende soorten SSL
De meest gebruikelijke manier om een SSL-certificaat in te stellen, is op uw eigen primaire IP-adres. Dit staat bekend als a Toegewijd SSL-certificaat. Het is alleen van toepassing op uw domein en webserver. Niet iedereen heeft genoeg geld om een dedicated hostingplan te kopen, maar gelukkig voor ons allemaal, er zijn andere oplossingen beschikbaar.
Over het algemeen zijn er drie verschillende soorten SSL-certificaten die u zou kunnen gebruiken. Sommige serviceproviders bieden mogelijk een gratis certificaat aan als een proefperiode voor beperkte tijd, maar deze certificaten zijn zeker niet veiliger dan een standaard HTTP-verbinding en verlopen snel.
- Toegewijde SSL - Dit is de meest veilige en klaarblijkelijk de duurste oplossing. Een HTTPS-verbinding wordt alleen geverifieerd voor uw hoofddomein dat is getarget via een aangewezen IP-adres.
- Gedeelde SSL - Webhosts die shared hosting aanbieden, hebben soms meerdere domeinnamen die naar hetzelfde IP-adres verwijzen. In dit geval is het veel gemakkelijker voor de host om één SSL te beheren op elke server die een reeks verschillende websites beslaat.
- Wildcard SSL - Deze kunnen lijken op een speciaal of gedeeld SSL-certificaat op basis van de serverconfiguratie. Wildcard SSL-certificaten targeten meerdere subdomeinen voor uw website. Dit is een haalbare oplossing als u verschillende functies van uw website opsplitst, bijvoorbeeld shop.domain.com, checkout.domain.com, enz.
Als je net begint, raad ik aan om een gedeelde SSL-instelling te gebruiken. Het is onwaarschijnlijk dat u zich meteen een dedicated webhost / IP-adres kunt veroorloven. En zelfs als je kunt, zijn de kosten van een speciaal SSL-certificaat gruwelijk. Maar het is absoluut iets waar je naar moet kijken als dat mogelijk is.
Aangezien deze handleiding echter is bedoeld voor beginners, denk ik dat een gedeeld certificaat meer dan voldoende is om aan de slag te gaan.
Stap voor stap Doorloop
De beste manier om u vertrouwd te maken met SSL-certificaten is een werkend voorbeeld. Laten we een klein Comodo-certificaat samenstellen van Namecheap. Ze hebben een zeer redelijke prijs die perfect is om beginners op weg te helpen. En omdat we alleen het proces moeten doorlopen en schetst, is dit het perfecte materiaal voor deze tutorial.
Genereer een CSR
Om te beginnen, moeten we het ondertekeningsverzoek maken op de backend van onze server. Ik gebruik een zakelijke hostingaccount via HostGator om een van mijn domeinen te testen. Elke webhost is een beetje anders, dus u moet het ondersteuningspersoneel raadplegen als u problemen ondervindt. Deze URL wordt gebruikt voor een CSR-generatie op HostGator-accounts.
Merk op dat veel van deze informatie gepaard moet gaan met de Whois-webgegevens van mijn domein. Ik gebruik de Whois Domain Tools-app die alle informatie biedt die dit formulier vereist. Als u privacy van uw domein hebt geïnstalleerd, moet u deze gegevens gebruiken in plaats van die van uzelf, zodat de CSR overeenkomt.
Dit proces kan tot 24 uur duren om de registratie te voltooien. Ik kreeg mijn antwoord binnen 15 minuten. Laten we doorgaan en ons certificaat nu kopen, zodat we het klaar hebben om te installeren met het ondertekeningsverzoek.
Laten we kopen!
De Comodo-plannen variëren van $ 9 per jaar tot bijna $ 100. Ik kijk naar het EssentialSSL-pakket dat slechts $ 25 per jaar kost. Dit is geen slechte deal gezien sommige van de alternatieven.
Dit plan wordt geleverd met een retourbeleid van 15 dagen als we niet tevreden zijn met het certificaat. Daarnaast wordt onze domeinnaam beveiligd voor het www-subdomein en niet-www. Na het toevoegen van dit pakket aan mijn winkelwagentje kunnen we uitchecken. Namecheap vereist dat ik me aanmeld bij een bestaand account of me aanmeld voor een nieuw account.
Na het invoeren van al mijn accountgegevens zal het laatste betaalscherm verschijnen. We hebben de mogelijkheid om te betalen met geld dat is opgeslagen op mijn account, creditcard of PayPal. Als alles goed verloopt, worden we doorverwezen naar een bestelbevestigingsformulier (u moet bovendien een e-mail ontvangen met deze informatie). Alles ziet er tot nu toe goed uit!
Laatste installatie
De CSR moet in een e-mail van uw webhost worden weergegeven. De sleutel is meer een blok met elkaar verwarde karakters en toetsen. Dit is wat we moeten bieden voor de SSL-verificatie. Ga terug naar Namecheap en zoek de pagina van het SSL-certificaat op en klik “Activeren”.
Op deze nieuwe pagina moeten we een servertype selecteren en de CSR-sleutel invoeren. Ik heb Apache + OpenSSL gekozen als de standaardselectie. Dit is een gebruikelijke setup voor Apache, maar als u het niet zeker weet, neem dan vooraf contact op met uw gastheer. Merk op dat uw webhost langer had moeten zijn geretourneerd RSA-sleutel die wordt gebruikt voor privé-authenticatie aan het einde van de server. Alles wat we moeten doen, is de kortere CSR-sleutel in het vak kopiëren en plakken en verzenden.
Vervolgens genereren we een e-mail verzonden naar de “approver” van de domeinnaam. Dit bevat wat informatie over uw SSL-certificaat en hoe u het op de host kunt activeren. Voor dit laatste inzendingsformulier is onze RSA-geheime sleutel vereist, evenals enkele aanvullende SSL-bundelinformatie. Dit wordt allemaal geleverd vanuit Namecheap nadat we de CSR hebben doorgegeven.
Het is vermeldenswaard dat op sommige webhosts u SSL mogelijk niet in een gedeelde omgeving kunt gebruiken. HostGator biedt bedrijven de mogelijkheid om hun accounts te upgraden naar een primair IP-adres, zodat er geen conflicterende fouten zijn met de cert. Het SSL-installatieformulier van HostGator is eenvoudig en valideert ook erg snel.
Nadat je gastheer heeft bevestigd dat alles in orde is, moeten we klaar zijn. Begrijp dat dit een paar uur tot een dag of langer kan duren. Wees geduldig en blijf je e-mail checken. Probeer na verificatie toegang te krijgen tot uw website via HTTPS en alle certificaatdetails moeten in de adresbalk staan. Het is altijd een strijd als je net begint, maar wees niet bang om hulp te vragen aan je SSL-provider of webhost indien nodig.
Een beveiligde verbinding beheren
Ik heb gemerkt dat dit ondersteuningsartikel van Hostgator enorm behulpzaam is om het installatieproces te begrijpen. Zelfs als u geen klant bent van HostGator, zult u waarschijnlijk cPanel gebruiken om elke externe webserver te beheren. Dit geldt voor 1 & 1 Hosting, Bluehost, enz.
Maar het leukste aan het gebruik van een SSL-configuratie op een externe webhost is dat u geen wijzigingen (of hoogstens kleine wijzigingen) in uw code hoeft aan te brengen! Nadat u een certificaat hebt gekocht, zijn de meeste webhosts hoffelijk genoeg om het voor u te installeren. Nadat alles goed is verlopen, zouden alle verbindingen via HTTP en HTTPS identiek moeten werken.
U kunt testen of het certificaat is geverifieerd door de URL-adresbalk in uw webbrowser te controleren. U zou een klein hangslotpictogram moeten zien dat een geverifieerde SSL-verbinding tussen uw computer en de externe webserver aanduidt. Sommige browsers zullen zelfs meer certificaatinformatie weergeven als u op het slotpictogram klikt.
Apache .htaccess Doorverwijzingen
Als u problemen ondervindt om bezoekers op het HTTPS-protocol te houden, kunt u overwegen om een redirect-script te gebruiken. Dit wordt meestal ingesteld op Apache-servers die een bestand gebruiken .htaccess, welke vele webhosts je kunnen laten configureren in cPanel.
Ik heb hieronder enkele voorbeeldcodes toegevoegd die u kunt gebruiken om uw eigen .htaccess-bestand in te stellen. Hiermee wordt al het inkomende verkeer omgeleid naar https: // met een www-subdomein. U zou www kunnen verwijderen zodat zou alle verkeer in plaats daarvan worden geleid naar https://yourdomain.com/ en de herschrijfregels zouden nog steeds perfect werken.
RewriteEngine On RewriteCond% HTTPS = off RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R = 301, L] RewriteCond% http_host ^ yourdomain.com [NC] RewriteRule ^ (. *) $ https://www.yourdomain.com/$1 [R = 301, L]
Verwijzen naar bestanden
Het meest irritante probleem dat u tegenkomt, is het verwijzen naar absolute URL's in plaats van relatieve bestandspaden. Dit zal niet een volledig beveiligde verbinding weergeven, in plaats daarvan verwijzen naar de waarschuwing dat die er zijn “onbeveiligde items” wordt weergegeven op de pagina. Als u elk type extern medium belt: video, afbeelding, stylesheet, moet dit lokaal worden gedaan. Ik heb hieronder een voorbeeld gedemonstreerd:
Met het eerste stukje code laadt u een potentieel onveilig document op een beveiligde pagina. Dit is de manier waarop intelligente hackers uw codering kunnen omzeilen. Het merendeel van de gevallen die ik ben tegengekomen, ontleedt via JavaScript of VBScript. Maar om zeker te zijn, zorg er gewoon voor dat geen van uw assets direct via HTTP trekt.
Als u om welke reden dan ook een bestand wilt ophalen via de absolute URL, gebruikt u in plaats hiervan HTTPS. Als u bestanden hebt die worden gehost op een externe website of server, kan dit problemen opleveren, omdat u een andere HTTPS-verbinding niet kunt verifiëren. Zorg ervoor dat alle webpagina's onder één IP worden geconsolideerd, zodat u deze problemen helemaal niet tegenkomt!
Gerelateerde Links
- Leg uit dat ik 5 ben: wat zijn online beveiligingscertificaten, SSL, HTTPS en hoe werken ze?
- De evolutie van SSL-authenticiteit [Infographic]
- SSL-certificaten stapsgewijs genereren en installeren
Conclusie
Ik hoop dat deze inleidende gids je een beetje inzicht heeft gegeven in de wereld van SSL. Webbeveiliging is een bloeiende branche die veel privégebruikersgegevens beveiligt. Alle bekende online winkels, waaronder Amazon en eBay, gebruiken SSL al jaren.
Ik geef toe dat SSL / HTTPS geen onderwerp is dat je gewoon kunt bestuderen om te begrijpen. Net zoals bij programmeren, moet je echt duiken en je handen vies maken door je eigen certificaat in te stellen. Het is een moeilijke taak om erop uit te trekken, maar het biedt een geweldig gevoel van voldoening op de lange termijn. Als je andere handige gidsen of gerelateerd materiaal kent, kun je je berichten delen op het discussiegebied.