Si vous développez une application Web Java, vous devriez envisager de la déployer sur le serveur d'applications Java JBoss AS open source.
Ce tutoriel explique comment installer JBoss avec le support SSL sur Linux.
1. Télécharger JBoss AS 7
La version stable actuelle de Jboass AS est 7.1.1. Téléchargez-le ici.
Ou, utilisez wget pour le télécharger directement comme indiqué ci-dessous :
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. Définir JBOSS_HOME
J'aime garder le jboss sous le répertoire /home et définir le JBOSS_HOME en conséquence, comme indiqué ci-dessous.
cd /usr/save mv jboss-as-7.1.1.Final /home export JBOSS_HOME=/home/jboss-as-7.1.1.Final
Assurez-vous également d'ajouter le JBOSS_HOME à votre répertoire ~/.bash_profile.
3. Vérifier la version Java
Vous avez besoin de JDK 1.6 ou supérieur pour exécuter Java AS 7. Si vous n'avez pas installé JDK sur votre système, téléchargez-le ici.
Sur mon système, j'ai déjà installé le JDK.
# java -version java version "1.6.0_31" ..
4. Démarrer et arrêter le serveur JBoss
Utilisez le script standalone.sh pour démarrer le serveur JBoss comme indiqué ci-dessous. Utilisez nohup et &pour exécuter le serveur JBoss en arrière-plan.
# nohup sh $JBOSS_HOME/bin/standalone.sh &
Après avoir démarré le serveur JBoss, vous devriez pouvoir accéder à http://localhost:8080 pour accéder au serveur JBoss.
Si vous souhaitez accéder à JBoss à partir de l'adresse IP, vous devez autoriser JBoss AS à accepter la connexion à distance.
Pour arrêter le serveur JBoss, ne tuez pas simplement le processus d'arrière-plan. À la place, utilisez le script jboss-cli.sh suivant et envoyez la commande shutdown au serveur JBoss comme indiqué ci-dessous.
$JBOSS_HOME/bin/jboss-cli.sh --connect --command=:shutdown
5. Créer un magasin de clés Java
Créons les clés requises pour JBoss sous /usr/save/keystore
mkdir /usr/save/keystore cd /usr/save/keystore
Utilisez la commande java keytool genkey pour créer la paire de clés RSA et le certificat auto-signé comme indiqué ci-dessous.
# /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. Certificat d'exportation et d'importation
Exportez le certificat vers un fichier 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>
Importez le fichier crt dans le magasin de clés.
# /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. Modifier standalone.conf
Modifiez le fichier /home//jboss-as-7.1.1.Final/bin/standalone.conf et ajoutez les paramètres JAVA_OPTS suivants.
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. Ajouter des entrées SSL dans standalone.xml
Modifiez le fichier /home//jboss-as-7.1.1.Final/standalone/configuration/standalone.xml comme indiqué ci-dessous.
Tout d'abord, dans le fichier standalone.xml, ajoutez les informations de connecteur SSL suivantes, après cette ligne :
<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>
Ensuite, dans le fichier standalone.xml, ajoutez la ligne suivante, après cette ligne :
<socket-binding name="connect" port="8181"/>
Enfin, après avoir redémarré JBoss, vous devriez pouvoir accéder à JBoss SSL à partir du port 8181.