SignjarSSL

Från Basvrak

Hoppa till: navigering, sök


Innehåll

Signera JAR-filer med SSL-certifikat

Bakgrund

Du har ett SSL-certifikat köpt från Verisign el motsvarande.

Filändelser

Certifikaten består antagligen av ett antal filer med några av följande filändelser:

  • csr - "Certificate Signing Request". Ett osignerat certifikat av typen x509 som du skapat själv. Denna fil har du skickat till t.ex. verisign för att få signerad.
  • crt - "Certificate". Ett signerat certifikat av typen x509 som du fått från verisign.
  • pem - Ett signerat certifikat av typen x509. Samma funktion som crt, fast ett annat format.
  • key - En privat RSA-nyckel som hör till certifikatet.

För att signera en jarfil behöver du använda dig av ytterligare ett antal filtyper:

  • pfx - "PKCS12", är en fil som innehåller en samling av certifikat av typen PKCS12, en annan certifikattyp än x509.
  • jks - "Java Keystore", är en fil som innehåller en samling av certifikat på en form som javas verktyg gillar.


Gör så här

Tillvägagångssättet är följande: Vi behöver få ut en JKS-fil som java kan läsa, som innehåller både det införskaffade certifikatet samt den privata nyckel som hör till certifikatet. Vi antar att du har tillgång till filerna www_test_com.crt (certifikatet) och www_test_com.key (den privata nyckeln).

1. Första steget är att slå ihop certifikatet och den privata nyckelfilen till en och samma fil, samt spara det i pkcs12-format (pfx). Detta gör man med hjälp av programmet openssl, som är ett program för hantering och konvertering av certifikat. Programmet finns t.ex. i cygwin och de flesta linuxdistar.

openssl pkcs12 -export -in www_test_com.crt -inkey www_test_com.key -out www_test_com.pfx

Nu har vi en certifikatfil av typen PKCS12. Det vi behöver göra med denna är att konvertera den till javas JKS-format. Tyvärr kan varken javas eller openssl:s certifikatverktyg göra detta, men man kan skriva ett javaprogram som gör det.

2. Ladda ner och kompilera konverteraren Media:PKCS12Import.zip Exekvera sedan:

java PKCS12Import www_test_com.pfx www_test_com.jks

3. Nu har du filen "www_test_com.jks" som javas certifikatverktyg kan använda. Testa att lista ditt certifikat med:

keytool -keystore www_test_com.jks -list

Varje certifikat i JKS-filen innehåller ett alias som används för att referera till just det certifikatet. Detta eftersom man kan ha flera certifikat i varje JKS-fil. Just den här konverteringen automatgenererar aliaset för certifikatet till "1". 4. Signera jar-filen med "jarsigner":

jarsigner -keystore www_test_com.jks geoclient.jar 1

där "1" är aliaset för certifikatet.

Om allt gick bra har du nu en jarfil med signerad kod som du kan använda som vanligt!

Personliga verktyg
test