Prieš konvertuodami: SSH raktas arba OpenVPN sertifikatas
authorized_keys eilutė, OpenSSH sertifikatas ir X.509 sertifikatas yra skirtingi objektai. Patikrinkite, kurį jų turite, prieš ką nors konvertuodami.
Importavimas nepavyksta su sertifikato klaida, todėl akivaizdus žingsnis atrodo kaip konvertavimas. Šis instinktas veda žmones keliu, kuriame pasikeičia failo plėtinys, o atmetimas lieka lygiai toks pat. authorized_keys eilutė ssh-ed25519 ir OpenVPN kliento sertifikatas yra atskiri prisijungimo duomenų objektai, turintys skirtingus išdavėjus, skirtingus kodavimus ir skirtingus atšaukimo kelius. Peržiūrėję šiuos patikrinimus iš eilės per minutę žinosite, ar konvertavimas apskritai gali padėti.
Kokį objektą iš tikrųjų turite?
Yra penki dalykai, kuriuos žmonės vadina raktu, ir tik vienas iš jų yra tai, ko nori TLS profilis. SSH viešasis raktas yra viena teksto eilutė su tipo priešdėliu ir base64 turiniu. OpenSSH sertifikatas yra tas raktas plius parašas, principals ir parinktys, kuriuos sukuria ssh-keygen, veikiantis kaip savo maža CA. X.509 sertifikatas yra visiškai kitokia struktūra: jis neša subjektą, galiojimo laikotarpį, plėtinius ir sertifikavimo institucijos parašą. Privatus raktas yra slaptoji pusė, o išduotas paketas paprastai yra sertifikatas plius jo grandinė plius privatus raktas viename faile.
Pirmasis bandymas kainuoja vieną komandą. Nukreipkite openssl į failą ir paprašykite išanalizuoti sertifikato struktūrą:
openssl x509 -in client.crt -noout -subject -issuer
Jei tai nepavyksta su nepavykusio įkelti arba PEM klaida, failas nėra X.509 sertifikatas, kad ir kokį vardą jam davėte. Pervadinimas neperrašo viduje esančio ASN.1, ir to nepadaro viešojo rakto eilutės įvyniojimas į PEM antraštės tekstą.
Ar profilis apskritai prašo sertifikato?
Kliento sertifikatai yra vienas autentifikavimo metodas iš kelių, ir daugelis veikiančių TLS profilių niekada jo neprašo. Serveris gali autentifikuoti naudotojus per papildinį, naudotojo vardą ir slaptažodį arba žetonų sistemą, kartu reikalaudamas, kad klientas patikrintų serverio tapatybę. Jei profilyje nėra kliento sertifikato direktyvos, sertifikatas niekada nebus prašomas, ir joks konvertavimas neprivers tinklų sietuvo jo paprašyti.
Senoji statinio rakto konfigūracija yra trečias atvejis. Ji atsirado prieš TLS rankos paspaudimą ir tikisi iš anksto bendro slapto failo, todėl įklijuoti viešąjį raktą į tą lauką taip pat negali veikti. Perskaitykite, ko profilis iš tikrųjų prašo, prieš nuspręsdami, kad prisijungimo duomenys neteisingi.
Ką perkodavimas gali ir ko negali
Privatūs raktai tikrai turi teisėtų alternatyvių konteinerių. Tas pats RSA arba EC raktas gali būti įrašytas kaip tradicinis PEM, kaip PKCS#8 arba PKCS#12 paketo viduje, ir įrankiai mielai konvertuoja tarp jų. Viešieji raktai turi panašią istoriją: ssh-keygen gali išvesti SSH rakto RFC 4716 formą, o OpenSSH supranta ir savo sertifikato formatą. Visa tai yra pateikimas, o pateikimas nėra pasitikėjimas.
Ko konvertavimas negali, tai sukurti parašą sertifikavimo institucijos, kuri niekada nematė jūsų rakto. Sertifikatas yra išdavėjo teiginys, kad tam tikras viešasis raktas priklauso tam tikram subjektui tam tikram tikslui. Perkodavimas išsaugo rakto baitus ir palieka teiginį nesantį, todėl tinklų sietuvas neturi ko tikrinti savo pasitikėjimo saugykloje.
Tai žingsnis, kuriame dauguma bandymų tyliai nepavyksta: failas dabar baigiasi .crt, klientas jį skaito be priekaištų, o rankos paspaudimas vis tiek nutrūksta, nes kita pusė negali sudaryti grandinės iki patikimo išdavėjo.
Kur įsijungia sertifikavimo institucija
Tikra registracija prasideda jūsų valdoma raktų pora ir sertifikato pasirašymo prašymu, kuriame yra operatoriaus laukiamas subjektas. Operatorius patikrina teisę, pasirašo prašymą CA raktu ir grąžina išduotą sertifikatą kartu su bet kokia tarpine grandine, kurią klientas turi pateikti. Tada klientui reikia jį pasirašiusio CA sertifikato, nes būtent jis leidžia patvirtinti, kad serveris, su kuriuo jis kalba, priklauso tam pačiam diegimui.
Tą paskutinį failą lengva pamiršti ir neįmanoma pakeisti. Pats CA pasirašymo raktas niekada nepriklauso kliento konfigūracijai, ir joks vietinis konvertavimas nesukuria grandinės, kurią turėjote gauti.
Kiek jums kainuoja pakartotinis SSH rakto naudojimas
Tarkime, konvertavimas vis dėlto sukūrė ką nors priimtino. Vienos raktų poros naudojimas ir SSH prieigai, ir VPN autentifikavimui vis tiek sujungia du nepriklausomus saugumo sprendimus. authorized_keys įrašo pašalinimas sustabdo SSH prisijungimus ir nieko nepadaro sertifikatui, kurį VPN CA jau išdavė tam pačiam viešajam raktui. VPN pusė atšaukiama savo mechanizmu, tai yra sertifikatų atšaukimo sąrašu arba operatoriaus registracijos įrašu.
Taigi kontrolinis sąrašas baigiasi sustabdymo sąlyga, o ne triuku. Jei openssl failo neanalizuoja kaip sertifikato, sustabdykite konvertavimą ir aprašykite, ką turite: SSH raktą, SSH sertifikatą, X.509 sertifikatą, privatų raktą arba paketą. Jei profilis neprašo kliento sertifikato, sustokite ir paklauskite, kokio autentifikavimo metodo tikisi serveris. Tik kai abu atsakymai rodo X.509, registracija tampa kitu žingsniu, ir tas pokalbis vyksta daug greičiau, kai pirmame sakinyje yra tinkamas daiktavardis.