Instalare GlassFish v2

| December 17th, 2007

ssl Revenim cu continuare articolului referitor la GlassFish v2. Se pare ca este lume interesata despre acest domeniu, pt ca la nici mai mult de o zi am primit un comentariu legat de acel articol. Deci sa purcedem mai departe. Ce-mi place cuvantul purcede. 🙂
Unul din parametrii profilului developer este Security Store, care identifica nivelul de securitate si cate produse ca certificate si chei pot fi stocate. Pentru profilul developer, valoare pentru Security Store este setata pe JKS. In acest caz, certificatele si cheile pentru server sunt stocate in Javakeystore file (keystore.jks) si certificatele de securitate eliberate de un furnizor (CA) sunt stocate intr-un fisier de certificate (cacerts.jks).


Cand instalati GlassFish v2 , isi creeaza implicit propria semnatura in certificatul de siguranta. Oricum, daca autentificarea este importanta pentru site-ul dumneavoastra, este nevoie sa inlocuiti semnatura care a fost creeata implicit cu o semnatura digitala eliberata de un CA. Aceasta sectiune descrie cum sa inlocuiti o semnatura implicita, cum sa obtineti un server securizat de la un CA, si cum sa importati un certificat intr-un “pastrator de chei”.

Pasii descrisi mai jos arata cum sa folositi keytool-ul, un utilitar de managerizare a cheilor si certificatelor. Keytool este disponibil in mai multe versiuni ale Java Platform, Standard Edition (Java SE) Development Kit (jdk). Oricum Java SE 6 a adaugat cateva functii pentru keytool. Instructiunile de mai jos sunt folosite pe keytool-ul jdk versiunea 6.
Instructiunile prezentate sunt folosite pentru a putea folosi GlassFish v2 ca un SSL server, cand aplicatia este configurata pe profilul developer.

  1. Stergeti semnatura care a fost creeata automat folosind urmatoarea comand:

    keytool – delete – alias s1as – keystore keystore.jks
    -storepass <parola de stocare>

    <parola de stocare> reprezinta parola pentru “pastratorul de chei”, de exemplu, “parolamea”. s1as este in mod implicit alias-ul”pastratorului de chei” din GlassFish v2.

  2. Generati o noua pereche de chei pentru aplicatie urmarind urmatoarele comenzi:

    keytool -genkeypair -keyalg <key_alg>
    -keystore keystore.jks -validity <val_days> -alias s1as

    unde <key_alg> este algoritmul care este folosit pentru generarea perechii de chei, de exemplu RSA, si <val_days> este numarul de zile pentru care certificatul este considerat valid, de exemplu, 365.
    Trebuie sa tinem minte ca pe langa generarea perechii de chei, aceasta comanda pastreaza certificatul si cheile private intr-o noua inregistrare din “pastratorul de chei”, si poate fi identificat cu ajutorul unui alias. Este important sa ne asiguram ca numele certificatului se potriveste perfect cu hostname-ul site-ului dumneavoastra. Daca numele nu se potriveste, clientii care se vor conecta pe serverul dumneavoastra, vor vedea un mesaj de alerta prin care li se spune ca numele certificatului nu se potriveste cu numele site-ului.

  3. Generati un Certificate Signing Request (CSR) folosind urmatoarea comanda: keytool -certreq -alias s1as -file <certreq_file>
    -keystore keystore.jks -storepass <store_passwd>

    unde <certreq_file> este fisierul in care CSR-ul este pastrat, de exemplu, s1as.csr, si <store_passwd> este parola pentru “pastratorul de chei”, de exemplu changeit.

  4. Trimite CSR-ul unui CA, de exemplu, VeriSign. In raspuns, trebuie sa primiti un certificat semnat pentru server.
  5. Salvati certificatul semnat de la CA, incluzand —– BEGIN CERTIFICATE —– si ——END CERTIFICATE —– intr-un fisier ca si s1as.cert. Downloadati certificatul CA si orice certificat CA intermediar si salvatile intr-un fisier local. Consultati documentatia browser-ului ca sa vedeti cum se importa un certificat CA sau un certificat intermediar CA. CA va poate procura informatii despre cum se importa certificatele CA in diferite browsere ca de exemplu Mozilla si Internet Explorer.
  6. Inlocuiti certificatul original cu certificatul obtinut de la CA (salvat in fisierul s1as.cert). Puteti folosi keytool-ul pentru a face acest lucru, oricum acest lucru implica multi pasi. Cel mai usor este sa rulati acest program Java: import java.io.*;
    import java.security.Key;
    import java.security.KeyStore;
    import java.security.cert.Certificate;
    import java.security.cert.CertificateFactory;
    import java.security.cert.X509Certificate;


    public class Main {
    public static void main(String[] args) throws Exception {
    //args[] error checking logic omitted
    //file containing signed cert reply from CA
    String csrReplyFromCA = args[0];
    //Path to GlassFish keystore.jks
    String keystoreLocation = args[1];
    //Password for GlassFish keystore.jks
    String keystorePassword = args[2];
    //The keyalias to be replaced : s1as in our example
    String selfSignedKeyEntry = args[3];

    //create the signed Cert
    Certificate cert = null;
    FileInputStream fis =
    new FileInputStream(csrReplyFromCA);
    CertificateFactory cf =
    CertificateFactory.getInstance("X.509");
    cert = cf.generateCertificate(fis);

    //now replace the original entry
    char[] passwordChars =
    keystorePassword.toCharArray();
    KeyStore keystore = KeyStore.getInstance("JKS");
    keystore.load(new FileInputStream(keystoreLocation),
    passwordChars);
    Key key = keystore.getKey(selfSignedKeyEntry,
    passwordChars);
    keystore.setKeyEntry(selfSignedKeyEntry, key,
    passwordChars, (new Certificate[]{cert}));
    keystore.store(new FileOutputStream(
    keystoreLocation), passwordChars);
    }
    }

Dupa ce ati rulat programul, ar trebui sa vedeti acest certificat s1as in GlassFish, si sa nu mai apara certificatul original. Mai jos este un exemplu care compara certificatul original cu certificatul s1as obtinut de la VeriSign:

Certificatul original:

Owner: CN=KUMAR, OU=Sun Java System Application Server, O=Sun
Microsystems, L=Santa Clara, ST=California, C=US
Issuer: CN=KUMAR, OU=Sun Java System Application Server, O=Su
n Microsystems, L=Santa Clara, ST=California, C=US
Serial number: 472acd34
Valid from: Fri Nov 02 12:39:40 GMT+05:30 2007 until: Mon Oct
30 12:39:40 GMT+05:30 2017

Certificatul nou s1as (contine semnatura sigura de la CA):

Owner: CN=KUMAR, OU=Terms of use at www.verisign.com/cps/test
ca (c)05, OU=Sun Java System Application Server, O=Sun Micros
ystems, L=Santa Clara, ST=California, C=US
Issuer: CN=VeriSign Trial Secure Server Test CA, OU=Terms of
use at https://www.verisign.com/cps/testca (c)05, OU=”For Test
Purposes Only. No assurances.”, O=”VeriSign, Inc.”, C=US
Serial number: 1375de18b223508c2cb0123059d5c440
Valid from: Sun Nov 11 05:30:00 GMT+05:30 2007 until: Mon Nov
26 05:29:59 GMT+05:30 2007

Dupa ce urmati acesti pasi, puteti restarta GlassFish v2 si sa folositi certificatul semnat obtinut de la CA.

Felicitari.

Sper sa va fie folositor acest tutorial.

.

3 Responses to “Instalare GlassFish v2”

  1. Catalin Says:

    He he he!!! Te-ai tinut de cuvant. Multumesc! Am incercat sa instalez, au fost cateva probleme, dar am reusit. Spor la scris si vad ca se misca bine blog-ul.

  2. Daniel Says:

    I couldn’t understand some parts of this article re GlassFish v2 | Java | Blog ATweb.ro, but I guess I just need to check some more resources regarding this, because it sounds interesting.

  3. Dan Says:

    Va anuntam ca incepand cu luna februarie 2008 http://blog.atweb.ro va putea fi citit si in engleza. Asadar reveniti in curand…
    ===
    We would like to inform you that starting february 2008 http://blog.atweb.ro will be available in english too. So be back soon…