Spletna stran uporablja piškotke za boljšo uporabniško izkušnjo in spremljanje statistike obiskov (Google Analytics).
Z nadaljno uporabo spletne strani ali klikom na "Strinjam se", se strinjate z uporabo piškotkov.
Piškotki in njihova uporaba

SSL certifikati za strežnike so dragi, a ni nujno vedno tako!

Objavil Blaž Kristan 11.1.2015 @ 10:01
Oznake: security, web

Že pred leti sem si doma postavil lasten CA in si izdajal domače certifikate, s katerimi sem si zagotavljal varno izmenjavo podatkov z domačim omrežjem, ko sem bil zdoma. Slabost teh certifikatov je bila zgolj ta, da jim spletni brskalniki privzeto niso zaupali in so se vedno (oz. dokler nismo trajno shranili zaupanja) pritoževali, da spletna stran ni varna (kar sicer ni čisto res, pravilno bi bilo - zaupanja vredna). :)

Ker pa je šlo predvsem za storitve, ki jih potrebujemo domači (ožja družina in nekaj kolegov), je bilo dovolj, da sem na spletni strani (tudi nešifrirani) objavil korenski certifikat domače CA in vsakdo, ki si ga je naložil v brskalnik oz. računalnik (ter mu nastavil ustrezno zaupanje) opozoril o neustrezni spleni strani ni več dobil.

Verjam, da se sprašujete zakaj sem se s tem sploh ukvarjal. Zaradi cene! SSL certifikati so nesramno dragi. Še posebej tisti, ki pokrivajo več strežnikov hkrati (npr. *.kristan-sp.si).

Pred kratkim pa sem odkril StartSSL, ki izdaja brezplačne certifikate za osebno oz. nekomercialno rabo (in to ne samo za spletne strežnike). Žal so ti certifikati omejeni le na en strežnik in časovno obdobje enega leta, kar pomeni, da jih moramo vsako leto obnoviti. Dobra lastnost pa je ta, da jim brskalniki zaupajo!

Predpogoji

Za kreranje StartSSL certifikatov imamo nekaj predpogojev:

  1. lastiti si moramo domeno (npr. domena1.com, lahko tudi zgolj poddomeno),
  2. imeti moramo dostop do poštnega naslova postmaster@... ali hostmaster@... preko katerega validiramo domeno.

Ustvarjanje StartSSL računa

StartSSL račun je prav tako brezplačen, če je tipa Class 1, ki ne zahteva fizičnega preverjanja. Odpravite se na startssl.com in kliknite gumb "Sign-up", ki se nahaja v zgornjem levem kotu brskalnika.

Nato izponite spodnji obrazec s svojimi podatki in kliknite Continue.

Na izbrani epoštni naslov boste prejeli potrditveno sporočilo v katerem je povezava za potrditev vpisa. Kliknite povezavo oz. jo vpišite v brskalnik ter tako verificirajte svoj epoštni naslov.

StartSSL nato prične z generiranjem uporabniškega zasebnega ključa in certifikata (to opravi brskalnik), preklikajte se skozi postopek (ki je odvisen od brskalnika, ki ga uporabljate) in na koncu ne pozabite izvoziti in varno shraniti svojega certifikata vključno z zasebnim ključem. Če ga izgubite (npr. ob reinstalaciji računalnika) izgubite tudi dostop do svojih certifikatov na StartSSL.

Validacija domene

Sledi validacija domene. V tem koraku StartSSL preveri ali ste res pravi upravljalec izbrane domene.

Prijavite se v nadzorno ploščo in izberite zavihek Validation Wizard. Iz spustnega seznama izberite "Domain Name Validation" ter nato vpišite ime svoje domene (brez www).

Sledi izbira epoštnega naslova preko katerega boste potrdili, da ste upravljalec domene (postmaster@... ali hostmaster@...). Na ta naslov nato prispe sporočilo s povezavo in navodili za verifikacijo.

Kreranje certifikata s StartSSL

Certifikat na StartSSL lahko kreiramo na dva načina:

  1. na svojem računalniku kreiramo zasebni ključ in CSR (certificate signing request) ter CSR oddamo StartSSL,
  2. ključ in certifikat generiramo na spletni strani StartSSL, ter ju nato shranimo na lokalni računalnik.

V obeh primerih dobimo na koncu datoteko tipa .CRT (ali tudi .CER), ki jo moramo shraniti v računalnik.

Če se odločimo, da zasebnega ključa zagotovo ne bo videl nihče (ostane zgolj na našem računalniku), lahko CSR kreiramo na naslednji način v ukazni vrstici:

$ openssl req -new -newkey rsa:2048 -nodes -out domena1.csr -keyout domena1.key -subj "/C=SI/ST=Slovenia/L=mesto/O=domena1.com/OU=IT/CN=www.domena1.com"

Rezultat sta dve datoteki: zasebni ključ (domena1.key) in CSR (domena1.csr). Seveda pred izvajanjem ukaza ustrezno popravite poševno zapisano besedilo. Pogoj je seveda tudi nameščen OpenSSL.

V kolikor nimamo OpenSSL ali pa nam ni hudo pomembno, da zasebni ključ generira za nas nekdo drug, lahko vse korake opravimo na spletni strani StartSSL.

Izberemo zavihek "Certificate Wizard" in iz spustnega seznama Certificat Target izberemo "Web Server SSL/TLS Certificate".

V naslednjem koraku vpišemo geslo za zasebni ključ in njegovo dolžino (prednastavljene vrednosti so priporočljive) ter pustimo, da StartSSL za nas generira naš zasebni ključ. Če smo zasebni ključ in CSR izdelali na svojem računalniku, kliknemo na povezavo "please skip this step".

Ko nam StartSSL prikaže zasebni ključ, ga takoj shranimo v svoj računalnik v datoteko npr. domena1_sec.key. V kolikor tega ne storimo, je ključ za vedno izgubljen.

Nato iz spustnega seznama izberemo domeno, ki smo jo pred tem validirali in kliknemo Continue.

Vpišemo še ime strežnika (npr. www) in s klikom na Continue dokončamo čarovnika. Certifikat lahko kasnej najdemo v zavihku "Tool Box", medtem pa dešifrirajmo ključ, ki smo ga pred tem generirali.

Dešifriranje zasebnega ključa

Zasebni ključ, če smo ga kreirali na spletni strani, moramo dešifrirati, da ga kasneje lahko uporabi spletni strežnik (npr. Apache). To storimo v zavihku "Tool Box" z izbiro povezave "Decrypt Private Key". S Copy/Paste v vnosno polje prepišemo zasebni ključ, v polje "Pasphrase" pa vpišemo geslo, ki smo ga izbrali v koraku kreiranja ključa ter kliknemo Decrypt.

Rezultat shranimo v datoteko npr. domena1.key, to datoteko bomo kasneje potrebovali na spletnem strežniku.

Prevzem certifikata

Sledi še zadnji korak, prevzem našega certifikata in vmesnega certifikata overitelja.

V zavihku "Tool Box", kliknemo "Retrieve Certificate" in iz spustnega seznama izberemo želeni certifikat ter kliknemo Continue. Certifikat shranimo v datoteko, npr. domena1.crt.

Prevzeti moramo še vmesni certifikat StartSSL kar storimo s klikom na povezavo "StartCom CA Certificates" in nato "Class 1 Intermediate Server CA". Shranimo ga v datoteko, npr. sub.class1.server.ca.pem.

Obe datoteki, certifikat in vmesni certifikat bomo kasneje potrebovali na spletnem strežniku.

Komentarji

* Komentarje mora odobriti admin.