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