SignjarSSL
Från Basvrak
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!
