Munkálatok a tanúsítvánnyal Java keystore-ban


Ez a rész azon felhasználók számára készült, akik az Apache Tomcat szervert , alkalmazások (kisalkalmazások) aláírására Java-t és illetve elsődlegesen Java keystore-t használnak.

Figyelem: A CSR létrehozása a Code Signing számára ugyanúgy történik, mint a szerveres tanúsítványnál. A Common name a vállalat neve lesz.

Keystore és kulcspáros létrehozása

Ez a parancs azt az új keystore-t és kulcspárost hozza létre, amelyet a tanúsítvány kérelem létrehozásához fog majd használni. keytool -genkey -alias test -keyalg RSA -keystore test.jks -keysize 2048 Ezt követően a keystore számára szóló jelszó és a keystore pontos adatainak megadása következik. A megadott adatok megegyeznek majd a CSRben találhatókkal:

What is your first and last name?
[Unknown]: Test Test
What is the name of your organizational unit?
[Unknown]: Unit
What is the name of your organization?
[Unknown]: Test corp.
What is the name of your City or Locality?
[Unknown]: Some City
What is the name of your State or Province?
[Unknown]: Some State
What is the two-letter country code for this unit?
[Unknown]: US
Is CN=Test Test, OU=Unit, O=Test corp., L=Some City, ST=Some State, C=US correct?
[no]: yes

CSR létrehozása

A CSR-t a következő parancsal hozzuk létre:
keytool -certreq -alias test -keystore test.jks -file test.csr A kérelmező adatait az előző lépésnél a kulcspáros létrehozásakor adtuk meg, tehát a keytool már azokat nem kéri.

A -file test.csr paraméter a fájlba történő CSR kimenetelére szolgál. Ha ezt kihadjuk, akkor a CSR a terminálban jelenik meg, ahonnét egyenesen bemásolhatjuk a rendelésünkbe.  Ezt követően már csak a tanúsítvány kiállítását kell megvárni.

A kiállított tanúsítvány keystore-ba való importálása

A kiállított tanúsítványt e-mailben kapják meg az SSLmarket-től, amit a keystoreba kell juttatniuk.

A Keystore a tanúsítvány telepítésénél kéri, hogy a tanúsítvány megbízható legyen és a kiállító autoritás (CA) jelen legyen a keystore-ban. Ez azt jelenti, hogy a tanúsítványt "fordított sorrendben" telepítjük - a gyökér tanúsítványtól a szerver tanúsítványig.

A telepítést a következő paranccsal tegyük meg:
keytool -import -trustcacerts -alias test -file test.txt -keystore test.jks

Error: Failed to establish chain from reply

Az említett elsődlegesen való CA telepítése a keystore-ba gyakran jelzi a keytool error: java.lang.Exception: Failed to establish chain from reply hibát. Ez a hiba azt jelenti, hogy a keystore-ban nincs jelen a kibocsátó CA/intermediate tanúsítvány.

A problémát a következő képpen oldjuk meg:

    • importtal fordított sorrendben - CA tanúsítványt először keytool -import -trustcacerts -alias root -file intermediate.crt -keystore test.jks
    • vagy a tanúsítvány telepítése PKCS#7 (P7B) formátumban. A linux_cert+ca.pem filet, amelyet a SSLmarket küldött, alakítsuk átt P7B-re a következő paranccsal: openssl crl2pkcs7 -nocrl -certfile linux_cert+ca.pem -out linux_cert+ca.p7b és ezt követően ezt a file-t telepítsük fel a keystore-ba:
      keytool -import -trustcacerts -alias test -file linux_cert+ca.p7b -keystore test.jks A Certificate reply was installed in keystore azt jelenti, hogy az importálás sikeres volt, míg a Public keys in reply and keystore don't match hiba jelentés azt jelenti, hogy a P7B file nem az adott domainhez szóló tanúsítvány (szerveres, endpoint), csak az intermediate jó.
    • esetleg a tanúsítvány PKCS#12 (PFX) formátumban való telepítésével, amelyben minden megtalálható: keytool -importkeystore -srckeystore pkcs12file.p12 -srcstoretype pkcs12 -destkeystore test.jks -deststoretype JKS A PKCS#12-vel való import a leggyorsabb, de ha a CSR-t egyenesen a keystore-ban hoztuk létre, akkor ez felesleges (szükséges annak exportja).

GUI eszközök

Ha nem szeretnénk a keystore parancssorával vagy termináljával dolgozni, választhatunk egyet a nemsok grafikus felületű eszközök közül.

Mind a kettő említett programok tudnak létrehozni vagy megnyitni keystore file-t, létrehozni CSR-t és vissza importálni a kiállított tanúsítványt (válasz a CA-tól). A menete ennek ugyanaz mint a feljebb leírt terminálnál; a külömbség csak a grafikus felület, amiben dolgozunk.

Portecle

Portecle egy ingyenes program a Java-ban, amely lehetővé teszi a keystore karbantartását grafikus felületen. Különböző platformokon is használható (Linux, MacOS, Windows).

KeyStore Explorer

KeyStore Explorer hasonlóan működik mint az előző program és ugyanúgy multiplatformos.

Az említett programok logikája viszont hasonlít az eredeti keystore-hoz; a munkálatokat így nem nagyon gyorsítja.