Se stai sviluppando un'applicazione web Java, dovresti considerare di implementarla su un server di applicazioni Java JBoss AS open source.
Questo tutorial spiega come installare JBoss con supporto SSL su Linux.
1. Scarica JBoss AS 7
L'attuale versione stabile di Jboass AS è 7.1.1. Scaricalo da qui.
Oppure usa wget per scaricarlo direttamente come mostrato di seguito:
cd /usr/save wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip unzip jboss-as-7.1.1.Final.zip
2. Imposta JBOSS_HOME
Mi piace mantenere jboss nella directory /home e impostare JBOSS_HOME di conseguenza come mostrato di seguito.
cd /usr/save mv jboss-as-7.1.1.Final /home export JBOSS_HOME=/home/jboss-as-7.1.1.Final
Inoltre, assicurati di aggiungere JBOSS_HOME alla tua directory ~/.bash_profile.
3. Verifica la versione Java
Hai bisogno di JDK 1.6 o superiore per eseguire Java AS 7. Se non hai JDK installato sul tuo sistema, scaricalo da qui.
Sul mio sistema ho già installato JDK.
# java -version java version "1.6.0_31" ..
4. Avvia e arresta JBoss Server
Utilizzare lo script standalone.sh per avviare il server JBoss come mostrato di seguito. Usa nohup e &per eseguire il server JBoss in background.
# nohup sh $JBOSS_HOME/bin/standalone.sh &
Dopo aver aggiunto a Speciali il server JBoss, dovresti essere in grado di accedere a http://localhost:8080 per accedere al server JBoss.
Se desideri accedere a JBoss utilizzando l'indirizzo IP, devi consentire a JBoss AS di accettare la connessione remota.
Per arrestare il server JBoss, non interrompere semplicemente il processo in background. Utilizzare invece il seguente script jboss-cli.sh e inviare il comando di spegnimento al server JBoss come mostrato di seguito.
$JBOSS_HOME/bin/jboss-cli.sh --connect --command=:shutdown
5. Crea Java Key Store
Creiamo le chiavi richieste per JBoss in /usr/save/keystore
mkdir /usr/save/keystore cd /usr/save/keystore
Usa il comando java keytool genkey per creare la coppia di chiavi RSA e il certificato autofirmato come mostrato di seguito.
# /usr/java/jdk1.6.0_31/bin/keytool -v -genkey -alias jbosskeys -keyalg RSA -keysize 1024 -keystore jbosskeys.jks -keypass SecretPwd -storepass SecretPwd -validity 365 -dname "CN=localhost" Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 365 days for: CN=localhost
6. Certificato di esportazione e importazione
Esporta il certificato in un file crt.
# /usr/java/jdk1.6.0_31/bin/keytool -v -export -rfc -alias jbosskeys -file localfile.crt -keystore jbosskeys.jks -keypass SecretPwd -storepass SecretPwd Certificate stored in file <localfile.crt>
Importa il file crt nel keystore.
# /usr/java/jdk1.6.0_31/bin/keytool -v -import -keypass SecretPwd -noprompt -trustcacerts -alias localhost -file localfile.crt -keystore cacerts.jks -storepass SecretPwd Certificate was added to keystore [Storing cacerts.jks]
7. Modifica standalone.conf
Modifica il file /home//jboss-as-7.1.1.Final/bin/standalone.conf e aggiungi i seguenti parametri JAVA_OPTS.
JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStorePassword=SecretPwd" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStorePassword=SecretPwd" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStoreType=JKS" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStoreType=JKS" JAVA_OPTS="$JAVA_OPTS \-DCLIENT_KEY_ALIAS=jbosskeys" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStore=/usr/save/keystore/jbosskeys.jks" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStore=/usr/save/keystore/cacerts.jks"
8. Aggiungi voci SSL in standalone.xml
Modifica /home//jboss-as-7.1.1.Final/standalone/configuration/standalone.xml come mostrato di seguito.
Innanzitutto, nel file standalone.xml, aggiungi le seguenti informazioni sul connettore SSL, dopo questa riga:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="connect" secure="true"> <ssl name="ssl" protocol="TLSv1" password="SecretPwd" certificate-key-file="/usr/save/keystore/jbosskeys.jks" ca-certificate-file="/usr/save/keystore/cacerts.jks" verify-client="true" /> </connector>
Quindi, nel file standalone.xml, aggiungi la seguente riga, dopo questa riga:
<socket-binding name="connect" port="8181"/>
Infine, dopo aver riavviato JBoss, dovresti essere in grado di accedere a JBoss SSL dalla porta 8181.