Si está desarrollando una aplicación web Java, debería considerar implementarla en un servidor de aplicaciones JBoss AS Java de código abierto.
Este tutorial explica cómo instalar JBoss con soporte SSL en Linux.
1. Descargar JBoss AS 7
La versión estable actual de Jboass AS es 7.1.1. Descárgalo desde aquí.
O use wget para descargarlo directamente como se muestra a continuación:
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. Establecer JBOSS_HOME
Me gusta mantener jboss en el directorio /home y establecer JBOSS_HOME en consecuencia, como se muestra a continuación.
cd /usr/save mv jboss-as-7.1.1.Final /home export JBOSS_HOME=/home/jboss-as-7.1.1.Final
Además, asegúrese de agregar JBOSS_HOME a su directorio ~/.bash_profile.
3. Verificar la versión de Java
Necesita JDK 1.6 o superior para ejecutar Java AS 7. Si no tiene JDK instalado en su sistema, descárguelo desde aquí.
En mi sistema, ya tengo instalado el JDK.
# java -version java version "1.6.0_31" ..
4. Iniciar y detener el servidor JBoss
Utilice el script standalone.sh para iniciar el servidor JBoss como se muestra a continuación. Use nohup y ¶ ejecutar el servidor JBoss en segundo plano.
# nohup sh $JBOSS_HOME/bin/standalone.sh &
Después de iniciar el servidor JBoss, debería poder acceder a http://localhost:8080 para acceder al servidor JBoss.
Si desea acceder a JBoss desde la dirección IP, debe permitir que JBoss AS acepte la conexión remota.
Para apagar el servidor JBoss, no elimine simplemente el proceso en segundo plano. En su lugar, use el siguiente script jboss-cli.sh y envíe el comando de apagado al servidor JBoss como se muestra a continuación.
$JBOSS_HOME/bin/jboss-cli.sh --connect --command=:shutdown
5. Crear almacén de claves de Java
Vamos a crear las claves necesarias para JBoss en /usr/save/keystore
mkdir /usr/save/keystore cd /usr/save/keystore
Utilice el comando java keytool genkey para crear el par de claves RSA y el certificado autofirmado como se muestra a continuación.
# /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. Certificado de Exportación e Importación
Exporte el certificado a un archivo 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>
Importe el archivo crt al almacén de claves.
# /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. Modificar standalone.conf
Modifique el archivo /home//jboss-as-7.1.1.Final/bin/standalone.conf y agregue los siguientes parámetros 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. Agregar entradas SSL en standalone.xml
Modifique /home//jboss-as-7.1.1.Final/standalone/configuration/standalone.xml como se muestra a continuación.
Primero, en el archivo standalone.xml, agregue la siguiente información del conector SSL, después de esta línea:
A continuación, en el archivo standalone.xml, agregue la siguiente línea, después de esta línea:
Finalmente, después de reiniciar JBoss, debería poder acceder a JBoss SSL desde el puerto 8181.
<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>
<socket-binding name="connect" port="8181"/>