Apache na frente do Glassfish: mod_jk em https (443)

3

Após a recomendação de usar o servidor http Apache na frente do glassfish (verifique pergunta ), usei o seguinte tutorial e fizeram funcionar, mas apenas na porta 80.
O que eu quero dizer é que agora eu posso digitar:

www.mydomain.com

e é executado. No entanto, se eu executar um aplicativo que requer https, ou seja, ter em web.xml (um aplicativo J2EE)

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

Quando eu digito:

www.mydomain.com

carrega automaticamente:

https://www.mydomain.com:8181

Eu não quero mostrar a porta 8181, quero apenas: link .

PS: utilizarei apenas UM aplicativo que é executado no contexto "/" .

A seguir estão minhas configurações:

* arquivo workers.properties :

worker.list=ajp13unsecure, ajp13secure

worker.ajp13unsecure.type=ajp13
worker.ajp13unsecure.host=localhost
worker.ajp13unsecure.port=8009

worker.ajp13secure.type=ajp13
worker.ajp13secure.host=localhost
worker.ajp13secure.port=8009

* link arquivo adicionado:

Listen 443

# Load mod_jk module
# Update this path to match your modules location
LoadModule    jk_module  modules/mod_jk.so

# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile conf/workers.properties

# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to  access_log)
# This can be commented out, to disable logging
JkLogFile     logs/mod_jk.log

# Set the jk log level [debug/error/info]
# Only matters if JkLogFile is being used.
JkLogLevel    debug

# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send everything for context /examples to worker named worker1 (ajp13)
# /examples would most likely be the name of your WebApp (c:/tomcat/webapps/example)
JkMount  /* ajp13secure

# Should mod_jk send SSL information (default is On)
JkExtractSSL On
# What is the indicator for SSL (default is HTTPS)
JkHTTPSIndicator HTTPS
# What is the indicator for SSL session (default is SSL_SESSION_ID)
JkSESSIONIndicator SSL_SESSION_ID
# What is the indicator for client SSL cipher suit (default is SSL_CIPHER)
JkCIPHERIndicator SSL_CIPHER
# What is the indicator for the client SSL certificated? (default is SSL_CLIENT_CERT)
JkCERTSIndicator SSL_CLIENT_CERT

Perguntas:
O que estou perdendo para que a porta 8181 não apareça mais na URL?

Além disso, como eu disse, o certificado SSL já está instalado no glassfish, eu tenho que instalá-lo no Apache ou é ok assim?

PS: estou usando

  • glassfish v3.0.1
  • windows server 2008 r2
  • Apache v2.2
  • Eu instalei um certificado SSL godaddy IN keystore glassfish . Funciona e está funcionando bem.
por shadesco 02.08.2012 / 23:03

1 resposta

1

Este é o resultado de um redirecionamento emitido por seu aplicativo para forçá-lo a se conectar por meio de SSL. A questão é que, como o glassfish está agora por trás de um proxy, o aplicativo não sabe que a porta em que está sendo executado não é a porta que as pessoas deveriam estar usando. Em algum lugar, deve haver configuração para substituir a porta a ser usada.

A solução fácil para este problema específico é usar o Apache em vez de Java para lidar com forçar as pessoas a usar SSL, o que você pode fazer com mod_rewrite :

RewriteEngine On
RewriteCond %{HTTPS} !=on    
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Dito isso, a solução real é descobrir de onde vem esse redirecionamento de URL e o que pode ser feito para reconfigurá-lo. É provável que esse problema apareça em outros lugares onde seu aplicativo cria URLs, como e-mails de registro de usuários.

(Disclaimer: Eu não sei nada sobre como Glassfish / J2EE / todos esses pequenos bits Java se encaixam, então eu não tenho certeza onde exatamente nessa pilha esta URL está sendo construída ou o que você tem que mudar para consertá-lo)

    
por 03.08.2012 / 01:20