Customizando o Glassfish 4 no Ubuntu 16.04

Hoje (25/08/2017), a versão do Glassfish Open Source Edition mais recente e recomendada para uso em produção é a 4.1.2, que pode ser obtida nesta página: https://glassfish.java.net/download.html

Para usar o Glassfish 4 é necessário instalar o Java 8, que pode ser obtido neste link http://www.oracle.com/technetwork/java/javase/downloads/index.html e instalado no Ubuntu seguindo este tutorial: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

O Glassfish padrão contém algumas vulnerabilidades de segurança e para minimizá-las é necessário customizá-lo. Os valores padrão do Glassfish estão nesta página https://docs.oracle.com/cd/E26576_01/doc.312/e24928/overview.htm#GSADG00695

Os manuais do Glassfish estão disponíveis nesta página: https://glassfish.java.net/documentation.html

Customizando o Glassfish

 

1- Foi obtido o Glassfish 4.1.2 acessando a página http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip. Com isso foi baixado o arquivo glassfish-4.1.2.zip no diretório /home/aecio/Downloads.

2- Descompacte o arquivo glassfish-4.1.2.zip e altere o nome da pasta descompactada para glassfishv4.

cd /home/aecio/Downloads
unzip glassfish-4.1.2.zip
mv glassfish4/ glassfishv4

3- Algumas configurações de segurança são listadas nestas páginas:

https://glassfish.java.net/docs/4.0/security-guide.pdf

Hide Glassfish Server Information

https://community.oracle.com/thread/2362026?start=0&tstart=0

http://blog.eisele.net/2011/05/securing-your-glassfish-hardening-guide.html

https://dzone.com/articles/securing-your-glassfish

4- Mova o diretório glassfishv4 para o diretório /opt e aplique as permissões de acesso.

sudo mv /home/aecio/Downloads/glassfishv4 /opt
sudo chmod -R 700 /opt/glassfishv4
sudo chown -R root:root /opt/glassfishv4

5- Crie o arquivo /etc/init.d/glassfish com o seguinte conteúdo.

—————————- INICIO do /etc/init.d/glassfish ————————

#!/bin/bash
# chkconfig: 345 90 90
# description: glassfish (GLASSFISH) Web Server JAVA Aplication
#

### BEGIN INIT INFO
# Provides: glassfish
# Required-Start: $local_fs $network $syslog
# Should-Start: $remote_fs $named $time
# Required-Stop: $local_fs $network $syslog
# Should-Stop: $remote_fs $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: GLASSFISH
# Description: glassfish (GLASSFISH) Web Server JAVA Aplication
### END INIT INFO

#----------------------------------------------------
# informa se o usuario que estah rodando o comando eh root
isroot(){
MYUID=$(id | cut -d= -f2 | cut -d\( -f1)
[ $MYUID -eq 0 ] && echo YES || echo NO
}

#--------------------------------
getPID(){
PID=$(ps ax | pgrep -fl $GLASSFISHEXEC  | sed "s/^ *//" | cut --field=1 --delimiter=" ")
echo $PID > $PID_FILE
}

#--------------------------------
isRunning(){
local PID="$1"
[ -z "$PID" ] && return 1
ps -p $PID > /dev/null 2>&1 && return 0 || return 1
}

#--------------------------------
status(){
getPID

[ -f $PID_FILE ] || return 3
PID=$(cat $PID_FILE )

if [ -z "$PID" ]; then
   echo "[INFO] Glassfish is not running..." 
   return 1
fi

if isRunning $PID; then
   echo "[INFO] Glassfish is running: PID=$PID"
   return 0 
else
   echo "[INFO] Glassfish is not running..." 
   return 1
fi
}

#--------------------------------
stop(){

if [ ! -f $PID_FILE ]; then
   echo "[INFO] Glassfish is not running..."
   return 0
fi

PID=$(cat $PID_FILE )
[ -z "$PID" ] && return 0
if isRunning $PID ; then
   echo "[INFO] Stopping Glassfish..."
   kill -9 $PID
   sleep 2
   return 0
fi
}

#--------------------------------
start(){

if [ -f $PID_FILE ]; then
   PID=$(cat $PID_FILE )
   if [ -z "$PID" ]; then
      echo "[INFO] Starting Glassfish..."
      $GLASSFISH_ASADMIN start-domain
      getPID
      return 0
   fi

   if isRunning $PID; then
     echo "[INFO] Glassfish is already running. Use \"restart\""
     return 0
   else
     echo "[INFO] Starting Glassfish..."
     $GLASSFISH_ASADMIN start-domain
     getPID
     return 0
   fi
else
   echo "[INFO] Starting Glassfish..."
   $GLASSFISH_ASADMIN start-domain
   getPID
   return 0
fi
}

#--------------------------------
# MAIN
#--------------------------------

#----- Variaveis
GLASSFISHEXEC=glassfishv4
GLASSFISHDIR=/opt/glassfishv4
GLASSFISHBINDIR=/opt/glassfishv4/glassfish/bin
GLASSFISH_ASADMIN=$GLASSFISHBINDIR/asadmin
PID_FILE=/tmp/glassfish.pid


if [ $(isroot) = NO ] ; then
        echo "[ERROR] Voce deve ser root para executar este comando."
        echo "Execute o comando \"sudo $CMDLINE\""
        exit 4
fi

# Define usage string, used in more than one place.
usage="[INFO] Usage: $0 {start|stop|restart|status}"

# Check that we have one parameter: action
if [ $# -ne 1 ] ; then
  if [ $# -lt 1 -o "$1" = "" ] ; then
    echo "[ERROR] $0: action not specified"
  else
    echo "[ERROR] $0: too many parameters"
  fi
  echo "$usage"
  exit 2
fi
action="$1"



case $action in
start)
        start
        RETURN=$?
        ;;

stop)
        stop
        RETURN=$?
        ;;
restart)
        stop
        start
        RETURN=$?
        ;;

status)
        status
        RETURN=$?
        ;;
*)
        # If we don't recognize action, consider it an invalid argument.
        # If the standard adds actions we don't support, exit should be 3 for those.
        echo "[ERROR] $0: action \"$action\" not recognized"
        echo "$usage"
        exit 3
        ;;
esac
exit $RETURN

———————– FIM do /etc/init.d/glassfish ———————-

6- Dê permissão de execução ao script /etc/init.d/glassfish.

sudo chmod 755 /etc/init.d/glassfish
sudo chown root:root /etc/init.d/glassfish

7- Habilite a inicialização do Glassfish no boot do Sistema Operacional.

sudo update-rc.d -f glassfish defaults

8- Inicie o Glassfish com o comando abaixo.

sudo /etc/init.d/glassfish start

9- O log do Glassfish fica em: /opt/glassfishv4/glassfish/domains/domain1/logs/ A porta padrão do HTTP é 8080, a porta padrão do HTTPS  8181 e a porta padrão do console administrativo é 4848.

10- Por padrão, a primeira senha do usuário admin do Glassfishv4 eh vazia. Altere-a com os seguintes comandos.

sudo /opt/glassfishv4/glassfish/bin/asadmin --user admin --port 4848 change-admin-password
sudo /etc/init.d/glassfish restart

Para persistir a nova senha, execute o comando abaixo, informe o login admin e depois a nova senha.

sudo /opt/glassfishv4/glassfish/bin/asadmin login

11- Habilite o acesso remoto a interface web do Glassfish com o comando abaixo.

sudo /opt/glassfishv4/glassfish/bin/asadmin enable-secure-admin
sudo /etc/init.d/glassfish restart

12- Desabilite o uso dos protocolos SSLv2, SSLv3, TLSv1, TLSv1.1 e cifras fracas na porta HTTPS e do console administrativo com os comandos abaixo.

sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.ssl.ssl2-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.ssl.ssl3-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls11-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.ssl3-tls-ciphers=+TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,+TLS_DHE_DSS_WITH_AES_128_CBC_SHA,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.sec-admin-listener.ssl.ssl2-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.sec-admin-listener.ssl.ssl3-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.sec-admin-listener.ssl.ssl3-tls-ciphers=+TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,+TLS_DHE_DSS_WITH_AES_128_CBC_SHA,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'
sudo /etc/init.d/glassfish restart

13- Ative o log de acesso ao Glassfish.

/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.access-logging-enabled=true
/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.access-log.format=common
/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.virtual-server.server.access-logging-enabled=true

14- Use os comandos a seguir para mudar a porta padrão do HTTP para 80 e HTTPS para 443.

sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.port=80

sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-2.port=443

sudo /etc/init.d/glassfish restart

15- Se deseja habilitar o uso do certificado emitido por uma autoridade certificadora, siga os seguintes passos.

São necessários os seguintes arquivos:

ca-root.crt       => certificado da entidade certificadora raíz.
ca-inter.crt      => certificado intermediário da entidade certificadora, se houver.
hostname.pfx => arquivo contendo as chaves pública e privada do certificado emitido para um host ou domínio, geralmente ao invés de distribuir esses arquivos no formato .pfx, são distribuídos diretamente no padrão hostname.key (chave privada) e hostname.crt (certificado).

Crie o diretório /etc/certs para armazenar os certificados a serem usados pelo Glassfish.

sudo mkdir /etc/certs/

Copie os arquivos keystore.jks e cacerts.jks que existem no diretório do Glassfish para /etc/certs.

cd /opt/glassfishv4/glassfish/domains/domain1/config/
sudo cp keystore.jks cacerts.jks /etc/certs/
cd /etc/certs/

Cadastrando o certificado emitido no keystore.jks e cacerts.jks

Etapa 1) Como foi recebido o certificado hostname.pfx, será necessário extrair, a partir dele, os arquivos no formato .crt (certificado público) e .key (chave privada).

sudo openssl pkcs12 -in hostname.pfx -nocerts -nodes -out hostname.key
sudo openssl pkcs12 -in hostname.pfx -clcerts -nokeys -out hostname.crt

OBS.: Após cada comando acima informe a senha do arquivo hostname.pfx, usada na emissão do certificado.

Use o comando abaixo para criar uma cópia da chave privada e protejê-la com a senha changeit.  Isso é necessário porque o Glassfish usa a mesma senha do Java Key Store (JKS) para acessar a chave privada. Para evitar expor a senha da chave privada, pode-se criar uma cópia da mesma e protegê-la com a senha changeit, que é a senha padrão do JKS usado pelo Glassfish.
openssl rsa -des3 -in hostname.key -out hostname_new.key
Ao executar o comando anterior, será solicitada a senha da chave privada armazenada no arquivo hostname.key. Em seguida, será solicitada uma nova senha para proteger a cópia da chave privada. Digite changeit para ser a nova senha.

Etapa 2) Crie um arquivo keystore PKCS12 para armazenar a chave privada e do certificado público.

De posse dos arquivos .crt e .key, será necessário criar um arquivo keystore PKCS12, para unir as duas chaves novamente, mas em outro formato: o .p12.

sudo openssl pkcs12 -export -name my-cert -in hostname.crt -inkey hostname_new.key -out keystore.p12

OBS.: Na execução do comando acima, informe a senha da cópia da chave privada e, em seguida, crie uma nova senha para armazenar as chaves no formato .p12.

Etapa 3) Converta a chave do formato PKCS12 em uma keystore JKS.

Para converter a chave do formato .p12 para .jks, use o comando abaixo.

OBS.: A senha usada no armazenamento dos certificados no arquivo keystore.jks é: changeit.

sudo keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias my-cert

Agora o arquivo keystore.jks está pronto.

Para listar o certificado importado, use o comando abaixo.

sudo keytool -list -keystore keystore.jks -alias my-cert -v

Etapa 4) Importe os certificados das entidades certificadoras

Importe para o arquivo cacerts.jks, os certificados das entidades certificadoras: ca-root.crt, ca-inter.crt (se existir).

OBS.: A senha usada no armazenamento dos certificados no arquivo cacerts.jks é: changeit.

sudo keytool -import -v -trustcacerts -alias ca-root -file ca-root.crt -keystore cacerts.jks -storepass changeit

sudo keytool -import -v -trustcacerts -alias ca-inter -file ca-inter.crt -keystore cacerts.jks -storepass changeit

Etapa 5) Importe os certificados das entidades certificadoras para o JKS padrão do JRE.

Adicione o certificado das autoridades certificadoras no JKS padrão da JRE do Java com os comandos abaixo.

sudo keytool -import -alias ca-root -keystore PATH_JRE/lib/security/cacerts -file ca-root.crt

sudo keytool -import -alias ca-inter -keystore PATH_JRE/lib/security/cacerts -file ca-inter.crt

Onde: PATH_JRE, deve ser substituído pelo diretório de base da JRE. Por exemplo: /usr/lib/jvm/java-8-oracle/jre/.

OBS.: A senha usada no armazenamento dos certificados no arquivo cacerts.jks é: changeit.

Etapa 6) Cadastre o keystore.jks e cacerts.jks no Glassfishv4. Execute a sequência de comandos abaixo, mas alterando os valores em negrito de acordo com o seu ambiente.

sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.cert-nickname=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStore=/etc/certs/keystore.jks';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStorePassword=changeit';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.trustStore=/etc/certs/cacerts.jks';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.trustStorePassword=changeit';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStoreAlias=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyAlias=my-cert';

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

16) Execute os comandos abaixo para aplicar configurações de segurança no Glassfish

#disable client-initiated renegotiation (to decrease the surface for DoS attacks)

sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options -Djdk.tls.rejectClientInitiatedRenegotiation=true
#get rid of http header field value "server" (Glassfish obfuscation)
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options -Dproduct.name=""
#disable sending x-powered-by in http header (Glassfish obfuscation)
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-1.http.xpowered-by=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.http.xpowered-by=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.admin-listener.http.xpowered-by=false
#disable SSLv3 nas portas iiop
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.iiop-service.iiop-listener.SSL.ssl.ssl3-enabled=false sudo /opt/glassfishv4/glassfish/bin/asadmin set server.iiop-service.iiop-listener.SSL_MUTUALAUTH.ssl.ssl3-enabled=false

#enable only access local at console Web Admin Glassfish

sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=127.0.0.1

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

17) Execute a sequência de comandos abaixo se quiser redirecionar todo o tráfego da porta 80 para 443 automaticamente.

sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol --securityenabled=false http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin create-http-redirect --redirect-port 443 --secure-redirect true http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-filter --protocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpRedirectFilter redirect-filter
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol --securityenabled=false pu-protocol
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-listener-2 --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-finder
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.protocol=pu-protocol

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

Criando um Pool de Acesso ao PostgreSQL no Glassfish

Se você tiver uma aplicação Web a ser implantada no Glassfish e que usa o banco de dados PostgreSQL, você pode usar os comandos para criar um recurso JDBC que usa o pool de conexões do Glassfish para gerenciar o acesso ao banco. Fazendo isso, será necessário que você ajuste o código da sua aplicação para ela usar o pool criado no Glassfish.

Abaixo estão os comandos para criar o pool e o recurso JDBC.

/opt/glassfishv4/glassfish/bin/asadmin create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname org.postgresql.ds.PGSimpleDataSource --maxpoolsize 100 --property "User=DBUSER:Password=DBPASSWORD:DatabaseName=DBASE:ServerName=DBHOST:PortNumber=DBPORTNUMBER" POOL_NAME
/opt/glassfishv4/glassfish/bin/asadmin create-jdbc-resource --connectionpoolid POOL_NAME RESOURCE_NAME
/etc/init.d/glassfish restart

Os comandos abaixo, confirguram a capacidade do pool de se reconectar ao banco de dados, em caso de perda de conexão.

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.connection-validation-method=custom-validation

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.validation-classname=org.glassfish.api.jdbc.validation.PostgresConnectionValidation

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.is-connection-validation-required=true

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.fail-all-connections=true
/etc/init.d/glassfish restart

Deploy e undeploy de aplicação no Glassfish

Abaixo estão os comandos para implantar (deploy) uma aplicação .war ou .ear no Glassfish.
/opt/glassfishv4/glassfish/bin/asadmin deploy --force=true --name=APP APP.war
/etc/init.d/glassfish restart
Abaixo estão os comandos para desimplantar (undeploy) uma aplicação no Glassfish.
/opt/glassfishv4/glassfish/bin/asadmin undeploy --name=APP 
/etc/init.d/glassfish restart

 

Fontes:

https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu
http://www.java-samples.com/showtutorial.php?tutorialid=1214
http://askubuntu.com/questions/587683/glassfish-ssl-console-handshake-exception
http://stackoverflow.com/questions/12860289/import-ssl-certificate-in-glassfish
https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu
http://grepthelinuxblog.blogspot.com.br/2012/02/glassfish-ssl-verisign-certificate.html
http://grburgos.blogspot.com.br/2010/07/glassfish-v3-with-ssl-using-verisign.html
https://glassfish.java.net/wiki-archive/How_to_ssl_versign.html
https://docs.oracle.com/cd/E19798-01/821-1751/ablqz/index.html
https://www.digicert.com/ssl-support/jks-import-export-java.htm
http://stackoverflow.com/questions/34726305/getting-ssl-certificate-to-work-with-payara-4-1/34808985
http://www.guj.com.br/t/sucesso-glassfish-v3-ssl-certificado-serasa-globalsign-etc/195965
http://www.denizoguz.com/2011/01/02/installing-godaddy-ssl-certificates-on-glassfish-v3-step-by-step/

 

Categories: ,

7 respostas para “Customizando o Glassfish 4 no Ubuntu 16.04”

  1. […] Customizando o Glassfish 4 no Ubuntu 16.04 […]

  2. Avatar de Wibson Pires Teixeira
    Wibson Pires Teixeira

    Boa tarde!
    Segui o seu tutorial para criar um servidor no google cloud em uma intancia ubuntu, mas n consigo acesso a porta:4848, vc sabe me indicar um jeito para ter esse acesso? Grato pela atenção!

  3. Avatar de Aécio Pires
    Aécio Pires

    Boa tarde, Wibson!

    Ao longo do tutorial foi executado um comando para desabilitar o acesso remoto a porta 4848/TCP. O comando foi esse:

    sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=127.0.0.1

    Leia novamente com calma para entender o porque de cada comando.

    O objetivo de desabilitar o acesso remoto a esta porta é: segurança. O painel administrativo web do Glassfish possui algumas vulnerabilidades de segurança que um atacante pode explorar e até obter acesso de root.

    Uma vez que esta porta esteja desabilitada, você passa a gerenciar o Glassfish usando o comando asadmin, que deve ser executado localmente na sua instância.

    Se mesmo assim, você quiser assumir o risco, então é só executar o comando abaixo.

    sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=0.0.0.0

    sudo /etc/init.d/glassfish restart

    Opcionalmente, você pode mudar 0.0.0.0 no comando acima para o IP público e fixo do qual está acessando.

    Abraço e fica com Deus.

  4. Avatar de Wibson Pires Teixerira
    Wibson Pires Teixerira

    Aécio, muito obrigado pela sua atenção e rapidez em responder a minha duvida!
    Realmente me faltou um pouco mais de disciplina n hora da leitura, mas vou corrigir esse erro! rs
    Tenha uma ótima semana!

  5. Avatar de Wibson Pires Teixeira
    Wibson Pires Teixeira

    Boa tarde Aécio!
    Desculpe incomodar de novo, mas estou obendo o seguinte erro ao fazer o deploy:
    Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: org.eclipse.persistence.jpa.rs.exceptions.ClassNotFoundExceptionMapper. Please see server.log for more details.

    Vcsabe como corrigir?
    Estou usando NEtBeans para gerar um WebService Restful

    Grato!

  6. Avatar de Aécio Pires
    Aécio Pires

    Boa tarde, Wibson!

    Infelizmente eu não sei como ajudá-lo. Peça ajuda a algum desenvolvedor experiente no assunto.
    Eu só sei como instalar o Glassfish. Não entendo de desenvolvimento de aplicações Java.

    Abraço e fica com Deus.

  7. Avatar de Wibson Pires Teixeira
    Wibson Pires Teixeira

    Eu consegui resolver!
    Como parte dos estudos eu estava criando uma aplicação Maven, então resolvi criar uma aplicação java Web comum e funcionou!
    Novamente grato pela atenção!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *