Sziasztok!
Szeretnék egy olyan oldalon ssl "beléptetést" csinálni, ahova rendelkezem érvényes "megbízható" tanúsítvánnyal.
Saját magam által aláírtat már csináltam többször is, egész jó leírások vannak hozzá, perfektül működik. Kliens generálja a csr-t, visszakapja tőlem a generált crt-t. Nálam pedig saját CA dekkol. Pirosan virít az oldal, így be kell importálni a saját ca-t, de működik perfektül.
De mi a helyzet amikor rendes vásárolt tanúsítvány van a szerveren?
Ilyenkor mi a menete a generálásnak? Erre nem nagyon találtam leírást eddig.
(linux szerver, apache webszerverrel)
köszi
- 1030 megtekintés
Hozzászólások
A kliens certificate nem kell hogy összefüggésben legyen a webszerver certjével, attól függetlenül is működik (vagyis meghagyhatod a saját CA root-ot a klienshez). Ha mindenképp szeretnéd összekötni őket, akkor a saját CA-t aláírod a webszerver tanusítványával, vagy azt használod a kliensek aláírásához, csak értelme nincs :)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Tehát apache alatt megmarad a 3 elem:
SSLCertificateFile
SSLCertificateKeyFile
SSLCACertificateFile
Az eredeti fájlokkal.
Utána simán generálok elölről mintha saját magam akarnék aláírogatni csak épp a saját ca crt-t nem teszem bele az apache-ba és ennyi?
Bocs ha kicsit értetlen vagyok :)
Köszi, hogy foglalkozol a nyűgömmel.
- A hozzászóláshoz be kell jelentkezni
A webszervered certjét az első kettő konfig sor által megjelölt helyre kell tenni (ezt írta alá a publikus ca).
A kliens certeket a saját ca-dal kell aláírni, aminek a certjét pedig az utolsó konfig sor szerinti helyre kell tenni - ide meg nem teszed be a webszervered publikus ca-jának a certjét.
- A hozzászóláshoz be kell jelentkezni
Köszönöm!
Sikerült.
Értem már. Azt hittem kell a publikus cert, most már okés.
Működik, zöld minden és még autentikál is.
- A hozzászóláshoz be kell jelentkezni
Webszerver->böngésző irány:
SSLCertificateFile
SSLCertificateKeyFile
böngésző->webszerver irány
SSLCACertificateFile
Az első esetben a böngésző fogja ellenőrizni hogy egy hiteles CA által aláírt tanúsítványt használsz, ellenkező esetben visít.
A második esetben pedig a webszervered ellenőrzi hogy a böngészőnek adott certificate az SSLCACertificateFile megadott CA által van-e kiállítva.
A két iránynak semmi köze egymáshoz
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Neked is köszönöm! Sikerült megcsinálnom. Köszi a fényt!
- A hozzászóláshoz be kell jelentkezni
a szerveroldali konfiguracioban ugyan ugy kell konfigolni fuggetlenul attol hogy trusted CA altal alairt vagy self-signed certed van.
trusted CA-nal vagy azt lehet csinalni, hogy rabizod a vendorra a private kulcs generalast is es visszakapod azt is a certtel egyutt, vagy ha a sajat private kulcsod akarod hasznalni, akkor csinalsz azzal lokalban egy CSR-t( https://en.wikipedia.org/wiki/Certificate_signing_request ) amit odaadsz/feltoltesz az altalad valasztott vendornak, aki ebbol a private kulcsod nelkul tud alairt certet generalni, amit visszakapsz, es onnantod a private kulcsoddal hasznalhato a kiszolgalasra.
ami manapsag meg szinten gyakori, hogy a CA-k nem a bongeszokben trusted root certekkel irjak ala a certeket (mert akkor sokkal nagyobb problema lenne ha 1-1 ca root key valahogy nyilvanossagra kerul), hanem a bongeszoben szereplo root CA-val ala van irva tobb intermediate CA, es ezek kozul valamelyikkel lesz alairva a te certed.
ilyenkor a szerver configban gondoskodnod kell rola, hogy a sajat certed mellett minden szukseges intermediate cert is at legyen adva a kliensnek a sikeres certificate chain bejarashoz.
kezdesnek erdemes lehet megnezni a startssl-t (ingyen ad maganszemelynek egyszeru de minden standard bongeszoben tamogatott certet): http://hup.hu/node/98658 illetve a https://letsencrypt.org/ hasonlo celra egy modernebb megoldas de kicsit melosabb beloni.
- A hozzászóláshoz be kell jelentkezni
Várjunk, az, hogy a szerveren ott legyen az ssl és biztonságos kapcsolatot nyújtson ez oké.
Ügyfél belép az oldalra, zöld https sáv, örülünk.
De azt szeretném, hogy csak olyan ügyfél léphessen be az oldalra aki rendelkezik tőlem kapott cert-el. Amúgy pontosan úgy ahogy a startssl alatt kell loginolni.
Tehát ssl handshake -et szeretnék úgy, hogy közben nem saját ca certet használok.
- A hozzászóláshoz be kell jelentkezni
Nem fogsz tudni olyan rendes certet venni, amivel te további certeket írhatsz alá. (Persze jó pénzért bármit... Illetve ki lehet állítani olyat is, ha nagyon akarod, csak el fog bukni nagyon alapvető validációkon, magyarul használhatatlan lesz minden értelmes, nem bugos szoftverrel.) Muszáj a saját CA a klienseidnek.
- A hozzászóláshoz be kell jelentkezni
- közben rájöttem hogy mind1:D
- A hozzászóláshoz be kell jelentkezni
felig igazad van, Trusted Root Signing Certificate -t nem vehet barki csak ugy, de client cert authentikacio-t lehet nem Trusted CA altal alairt kliens certtel is hasznalni (sot legtobb esetben ez tortenik).
- A hozzászóláshoz be kell jelentkezni
Te kevered a két irányt.
A webszervered által bemutatott certnek semmi köze a kliensek által használt certekhez. A webszerveredet olyan ca kell aláírja, amit a kliensek elfogadnak, míg a klienseknek kiadott certeket meg a saját ca-dal kell aláírni. Persze használhatod erre a célra (is) valamelyik publikus ca-t, csak akkor egyfelől a kliensek certjét a ca-tól kell kérni (ez nem lesz ingyen), plusz innentől kezdve ebben az idegen ca-ban kell megbíznod - én nem tenném, sokkal biztonságosabb a saját ca erre a célra.
- A hozzászóláshoz be kell jelentkezni
+1, direkt ezért írtam az elején kiemelve az apache config direktívát is
- A hozzászóláshoz be kell jelentkezni
ok, szoval te a klienseidet akarod certtel azonositani (mokas modon egyebkent a startssl pont igy azonositja a sajat felhasznaloit, szoval ha toluk akarsz kerni valid certet akkor eloszor regisztralsz es a bongeszobe telepiteni kell a client certet amit kapsz toluk).
https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#accesscontrol
a certeket ebben az esetben te generalod/irod ala, a kliensbe meg fel kell venni/be kell importalni.
szerk: kozben latom mar hogy megoldodott Mcsiv segitsegevel.
- A hozzászóláshoz be kell jelentkezni
igen, ezt tudtam is, mármint a startssl-t. Nagyon tetszett is, írtam is példának, hogy ugyanúgy akarom.
A lényeg, hogy megy, a ca crt -nek apache-ban nem a kapott publikust kell megadni, hanem azt amit én generáltam, ennyi volt a lényeg :)
- A hozzászóláshoz be kell jelentkezni