Hvad er forskellen mellem en .jks og en .cer-certifikatfil? Er det muligt at konvertere fra det ene til det andet?


Svar 1:

JKS står for Java KeyStore. Det er et lager af certifikater (underskrevne offentlige nøgler) og [private] nøgler. Du kan eksportere et certifikat gemt i en JKS-fil til en separat fil. Du kan bruge "keytool" -værktøjet, der findes i Java-distributioner, til at bevare din JKS-tillid og nøglerepoter. Som andre typer nøgleopslag (f.eks. PKCS12, CMS) er et JKS-opbevaring beskyttet af et kodeord, fordi det kan indeholde private nøgler, som skal beskyttes, fordi de bruges til at dekryptere oplysninger, der er krypteret med offentlige nøgler. [Private] nøgler i opbevaringssteder er også beskyttet af en "nøgle adgangskode", som kan være den samme som nøgle arkivets adgangskode (ikke en god praksis).

Følgende kommando eksporterer certifikatet, der er tilknyttet aliaset / mærket "mycert" i JKS-filen "mykeys.jks". Outputfilen "mycert.cer" vil kun indeholde certifikatet (dvs. den underskrevne offentlige nøgle).

keytool -exportcert -rfc -alias mycert -fil mycert.cer -keystore mykeys.jks -storepass passw0rd


Svar 2:

JKS - Java-nøglelager. Dens java måde at gemme de relevante oplysninger på.

.CER - Certifikatfil dvs. offentlig ckey.

Du kan konvertere fra CER til JKS, da du kun konverterer den offentlige nøgle. Både kommandolinjeværktøjer og API giver dig mulighed for at gøre det.

Jeg tror ikke, du kan få adgang til den private nøgle fra JKS-fil selv med adgangskode (med henblik på eksport). Jeg kunne have forkert. For et stykke tid siden løb jeg ind med problemer med konvertering og endte med at bruge P12-format, da jeg var i stand til at bruge den samme P12-fil fra både Java og .NET og endda kan bruge OpenSSL-værktøjer.

Hvis du leder efter en platformuafhængig måde at bruge Asymmetrisk nøgle på, er P12 dit bedste valg. Du kan importere dem til ethvert værktøj / platform uden problemer og bruge native API til at udtrække den offentlige nøgle (.CER).