CONFIGURAZIONE DI JBOSS CON SSL

Transport Layer Security (TLS) e il suo predecessore Secure Sockets Layer (SSL) sono dei protocolli crittografici che permettono una comunicazione sicura e una integrità dei dati su reti TCP/IP come, ad esempio, internet. TLS e SSL operano a Livello di trasporto (Transport Layer) e criptano la comunicazione dalla sorgente alla destinazione (end-to-end).

Quando viene installato un certificato SSL su di un server in cui è presente JBoss, si devono eseguire i seguenti passi per la configurazione di Tomcat dentro l'application server.
  1. Creare la chiave del server con il seguente comando :

    keytool -genkey -alias <keyalias> -keypass <yourpassword> -keyalg RSA -keysize 1024 -dname "CN=<commonname>,O=<organizationName>,OU=<organizationUnitName>,C=<countryName>" -keystore server.keystore -storepass <yourpassword>

    dove :

    <keyalias> è il valore dell'attributo keyalias che troviamo nel file server.xml ( dentro la directory {jboss_home_dir}/server/default/deploy/jbossweb-tomcat55.sar )

    <Connector className="org.apache.catalina.connector.http.HttpConnector"
    maxThreads="100" strategy="ms"
    maxHttpHeaderSize="8192" emptySessionPath="true"
    scheme="https" secure="true" clientAuth="false" keystoreFile="${jboss.server.home.dir}/conf/server.keystore" keystorePass="mypassword" sslProtocol = "TLS" keyAlias="mykeyalias" />


    <companyName> es. www.youserver.it
    <organizationName> es. GARR
    <organizationUnitName> es. UNIPI (se ne possono specificare più di uno)
    <countryName> es. IT
    <yourpassword> es. mypassword

    ESEMPIO:
    keytool -genkey -alias mykeyalias -keypass mypassword -keyalg RSA -keysize 1024 -dname "CN=www.myserver.it,O=GARR,OU=UNIPI,OU=CED,C=IT" -keystore server.keystore -storepass mypassword

  2. Copiare il file server.keystore, generato sopra, nella cartella {jboss home dir}/server/default/conf/

  3. Certificare la chiave con il certificato CA, attraverso il seguente comando :
    keytool -certreq -keystore server.keystore -alias mykeyalias -file mycert.pem

ERRORI COMUNI:

Quando JBoss non è opportunamente configurato dopo l'installazione del certificato SSL , in fase di avvio dell'application server viene rilevata la seguente eccezione:

java.io.IOException: Keystore was tampered with, or password was incorrect

Questo avviene se:
  • il file server.keystore non è stato ancora generato
  • il file server.keystore è stato manomesso
  • dentro il file server.xml (di cui sopra) la voce Connector è commentata
  • dentro il file server.xml (di cui sopra), alla voce Connector i valori degli attributi (es. keyalias o keystorepass)


Fonti:
  • http://cybertrust.omniroot.com/support/codesigning/codesign_sunjava.cfm
  • http://www.theserverside.com/discussions/thread.tss?thread_id=22243
  • http://jack.godau.googlepages.com/jbosscertificatesandopenssl

2 commenti:

Anonimo ha detto...

e su apache tom"gatt" hai mai fatto esperienza? non riesco a capire come mai all'importazione del certificato intermedio di verisign, mi dia errore di chiave non corrispondente, eppure ho seguito alla lettera tutti i passaggi...

p.s. per riempire la pancia, stavolta mi tocca fare le cose sotto katramazozz (windows) è forse per questo che di default non funziona un ciufolo?

Etha ha detto...

Credo (o piuttosto mi auguro) che non dipenda dal sistema operativo. Volendo quindi scartare questa ipotesi, devo darti una risposta negativa: non ho provato con tomcat. Ma non credo che cambi così tanto, in fondo JBoss incorpora Tomcat, quindi non saprei dirti :(