Integrar o JIRA ao Apache usando SSL
As aplicações Atlassian permitem o uso de proxies reversos nos nossos produtos. Entretanto, o suporte da Atlassian não fornece assistência para configurá-los. Consequentemente, a Atlassian não pode garantir o fornecimento de suporte para eles.
Caso seja necessário obter assistência para a configuração, crie uma pergunta no Atlassian Answers.
Essa é uma configuração comum para redes com vários certificados SSL e/ou aplicações web, uma vez que eles todos são gerenciados em um local (Apache).
Se houver necessidade de uma solução mais complicada, consulte a documentação da versão do servidor Apache HTTP, consulte o SME do Apache na sua organização e, se necessário, registre sua pergunta em Atlassian Answers ou entre em contato com um de nossos parceiros Atlassian.
Antes de começar
Espera-se que o certificado SSL tenha sido assinado por uma CA (Autoridade de Certificação) e esteja no formato PEM antes da configuração do Apache. Para obter assistência ao preparar e gerar o certificado SSL, consulte um fornecedor de SSL (por exemplo, GoDaddy, Verisign, RapidSSL).
Identificar se é melhor usar um domínio, um subdomínio ou um caminho de contexto depende amplamente do tipo de certificado SSL fornecido e também de quaisquer regras de negócio relacionadas às configurações do site. Para o SSL funcionar sem erro, o domínio deve corresponder ao CN (Nome Comum) do certificado.
Um certificado que tenha um CN com asterisco (*) é um certificado curinga e pode dar suporte a qualquer subdomínio daquele domínio. Se você não tiver certeza sobre qual URL usar, consulte o administrador do sistema e o fornecedor de SSL que concedeu o certificado.
Etapa 1: Configurar o Tomcat
- Pare o JIRA.
(Opcional: se o JIRA não exigir um caminho de contexto, ignore essa etapa.)
Edite o
server.xml
do Tomcat para incluir o caminho de contexto do JIRA necessário. O exemplo a seguir usapath="jira"
, isso significa que o JIRA está acessível emhttp://jiraserver:8080/jira
, considerando que a porta padrão do JIRA seja usada.<Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <Context docBase="${catalina.home}/atlassian-jira" path="/jira" reloadable="false" useHttpOnly="true"> <!-- ==================================================================================== Note, you no longer configure your database driver or connection parameters here. These are configured through the UI during application setup. ==================================================================================== --> <Resource auth="Container" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60" name="UserTransaction" type="javax.transaction.UserTransaction"/> <Manager pathname=""/> </Context> </Host>
Garanta que o valor de
path
seja definido precedido por uma barra (/
). Por exemplo,path="/jira"
, em vez depath="jira"
.Edite o
server.xml
do Tomcat para incluir um conector separado para fazer proxy das solicitações. Isso requer os atributosscheme
,proxyName
eproxyPort
. Substitua-os pelo domínio e a porta adequada do proxy, conforme o exemplo a seguir:<Service name="Catalina"> <!-- Apache Proxy Connector with values for scheme, proxyName and proxyPort --> <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" scheme="https" proxyName="jira.atlassian.com" proxyPort="443" /> <!-- Standard HTTP Connector --> <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8081" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" />
- Desabilite quaisquer redirecionamentos no Tomcat para HTTPS se tiverem sido habilitados, por exemplo, as alterações para
WEB-INF/web.xml
in Executar aplicações JIRA em SSL ou HTTPS causarão erros ao usar o Apache. - Inicie o JIRA.
- Teste se o JIRA está acessível no conector normal, usando um caminho de contexto, se aplicável. Por exemplo,
http://jiraserver:8081/jira
. - Teste se o novo conector está em vigor acessando o JIRA no conector proxy adequado. O comportamento varia conforme o caminho do contexto:
- Se o caminho de contexto for vazio ou raiz (
/
), acessar o JIRA por meio do conector proxy (por exemplo,http://jiraserver:8080/
) deve levá-lo ao JIRA com um aviso: - Se o caminho de contexto for diferente de vazio ou raiz (
/
), por exemplo,/jira
, visitar o JIRA por meio do conector proxy (por exemplo,http://jiraserver:8080/jira
) deverá redirecioná-lo ao proxy configurado (por exemplo,https://jira.atlassian.com/jira
).
- Se o caminho de contexto for vazio ou raiz (
Usamos dois conectores do Tomcat diferentes de modo que o teste possa ser feito no JIRA, ignorando o proxy quando necessário, o que é uma etapa útil na resolução de problemas. É esperado que o conector padrão não tenha acesso externo de fora da rede (o firewall não encaminhará nenhuma porta a ele).
Etapa 2: Configurar o servidor Apache HTTP
A instalação do Apache e a configuração de um DNS não são abordadas nesta documentação. Além disso, presume-se que o Apache 2.2 tenha sido instalado e as entradas DNS tenham sido configuradas para o domínio do JIRA. Uma vez que a configuração do Apache é específica para o sistema operacional utilizado, somente algumas distribuições e suas configurações são documentadas no momento.
2.1 Habilitar os módulos proxy
Debian/Ubuntu
Windows/outro sistema operacional
2.2. Configure o Apache para usar esses módulos
Debian/Ubuntu
Windows/outro sistema operacional
2.3 Redirecionar HTTP para HTTPS
Isso pode ser feito com uma das opções a seguir:
- Configurar o
VirtualHost
HTTP para encaminhar ao mesmo Tomcat Connector. O Tomcat redirecionará para HTTPS usando os parâmetrosscheme
,proxyName
eproxyPort
. Isso pode ser feito como em nossa documentação de Integrar o JIRA ao Apache. Usando mod_rewrite (esse módulo pode exigir habilitação), adicione o seguinte ao
VirtualHost
HTTP:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Etapa 3: Configurar o JIRA
- Defina Usar compactação gzip como OFF, como em Configurar opções do JIRA. Sabe-se que a compactação GZIP causa problemas de desempenho usando um proxy reverso, especialmente se o proxy também estiver compactando o tráfego.
- Defina o URL de base como sendo o FQDN em que o JIRA será acessado, por exemplo, https://jira.atlassian.com. Isso também está localizado em Configurar as opções do JIRA.
O JIRA pode ser configurado somente para responder a um único URL, e o URL de base (como em Configurar opções do JIRA) deve corresponder ao URL que os usuários finais estão acessando. A configuração incorreta desse item pode causar problemas significativos no JIRA, como falha no funcionamento correto do fluxo de atividade e dos gadgets do painel.
- Teste acessando o JIRA no FQDN (por exemplo: https://jira.atlassian.com), garantindo que o JIRA esteja acessível e todos os gadgets sejam exibidos corretamente.
Solucionar problemas
- Sessões sequestradas: Alguns usuários relataram problemas de sequestro de sessões de usuário quando o módulo mod_cache estava ativado. Se esses problemas forem encontrados, tente desabilitar o módulo
mod_cache
.Esse módulo é habilitado por padrão em algumas distribuições do servidor Apache HTTP versão 2.
- Erros de permissão negada habilitando
mod_proxy
(emod_jk
) em distribuições Linux que usam SELinux: Os usuários relataram erros de "permissão negada" ao tentarem fazermod_proxy
(emod_jk
) funcionar. Desabilitar o SELinux (/etc/selinux/config
) aparentemente corrige isso. Executar o Mac OS X: Desabilite webperfcache, que faz a porta 80 de proxy por padrão. Um usuário relatou isso como a causa provável de problemas de sessão do JIRA na forma de mistura das identidades de usuários, conforme abaixo.
Além disso, não recomendamos usar Max OS X, uma vez que ele não tem suporte, como em nossas Plataformas com suporte.
Os servidores OSX habilitam o webperfcache por padrão para hosts virtuais, o que seria ótimo para conteúdo estático, porém, para instâncias dinâmicas (como TODAS as nossas instâncias), ele é inadequado e causará muitos problemas.
É importante lembrar que, recentemente, houve um problem de sessões no JIRA. Consulte também: -
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/webperfcache.8.html
Infelizmente, mesmo que você desative webperfcache para uma instância, se houver uma única instância habilitada, ainda todas as instâncias terão o proxy por meio de webperfcache, resultando em problemas na sessão.
- Redirecionamentos em excesso: Tanto Tomcat quanto Apache estão redirecionando, quando apenas um deveria estar. Desabilite o redirecionamento no Tomcat (reverta quaisquer alterações como em Executar o JIRA por SSL ou HTTPS) e verifique se há somente uma direção no Apache.
- Problemas gerais:
- Limpe o cache do navegador e tente novamente.
- Verifique se o JIRA funciona conforme o esperado ao executá-lo diretamente do Tomcat e ignorando o Apache. Por exemplo, acessando
http://jiraserver:8080
, em vez de http://jira.atlassian.com. - Aumente o LogLevel para o Apache a fim de depurar e reinicie-o.
- Tente acessar o JIRA e consulte os Arquivos de registro do Apache para verificar se há algum erro.
- Faça uma pergunta em Atlassian Answers para obter assistência.
- Erro 403 Proibido:
Adicione a linha
RequestHeader unset Authorization
à página de configuração do Apache para desabilitar os cabeçalhos de autorização.<Location /jira> RequestHeader unset Authorization ProxyPreserveHost On ProxyPass http://jiraserver/jira ProxyPassReverse http://jiraserver/jira </Location>
Consulte também
- Integrar o JIRA ao Apache
- Configurar o proxy reverso do Apache usando o protocolo AJP
- Para obter mais configurações de
mod_webapp
mais avançadas (por exemplo, SSL), consulte este guia de mod_proxy. - Documentação do host virtual do Apache