The Customer Portal is not loading when Jira is running behind a reverse proxy (or Load Balancer)

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Symptoms

When accessing the Jira Service Management Customer Portal, the portal is not loading and a blank page is displayed instead:

(Auto-migrated image: description temporarily unavailable)

Expected results

The Customer Portal should load:

(Auto-migrated image: description temporarily unavailable)

Diagnosis

  • Jira is running behind a load balancer or reverse proxy

  • The SSL protocol is configured at the load balancer (or reverse proxy) level

  • When checking the HAR file collected while replicating the issue (or the Network tab in the browser), we can see that Service Management is trying to load some Javascript via HTTP URLs, while Jira's Base URLs is configured using HTTPS:

    (Auto-migrated image: description temporarily unavailable)
  • When checking the Console logs, we can see an error saying that the page was blocked due to "mixed content"

    1 1:4 Mixed Content: The page at 'https://JIRA_DOMAIN/servicedesk/customer/portal/1' was loaded over HTTPS, but requested an insecure script 'http://JIRA_DOMAIN/s/f4cbae4fba07da7db5e0b98c8ce4618e-CDN/wmo8yh/813000/6411e0087192541a09d88223fb51a6a0/add9c254b8e5b2bbfdb57038dcb349ab/_/download/contextbatch/js/jira.webresources:almond,customerportal,com.atlassian.analytics.analytics-client:js-events/batch.js?locale=en-US'. This request has been blocked; the content must be served over HTTPS.
    (Auto-migrated image: description temporarily unavailable)
  • There is a proxied Tomcat connector in the file <JIRA_INSTALLATION_FOLDER>/conf/server.xml, which is configured without the parameter scheme="https":

    1 <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8082" protocol="HTTP/1.1" redirectPort="8443" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" useBodyEncodingForURI="true" proxyName="somehostname.com" proxyPort="443"/>

Cause

The Service Management code that builds the Javascript URLs is using the protocol that has been passed from the Tomcat connector (HTTP) rather than the protocole from the base URL defined in Jira (which is using HTTPS).

Since the Tomcat connector was not configured with the HTTPS scheme parameter, all the Javascript URLs were built using HTTP (instead of HTTPS). Since the Customer Portal is accessed from the browser via HTTPS, the browser automatically blocked the loading of the portal due to the mixed content.

Solution

Workaround

  • Add the parameter scheme="https" to the server.xml of the Jira application (or each Jira node of the cluster if using Jira Data Center)

    1 <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8082" protocol="HTTP/1.1" redirectPort="8443" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" useBodyEncodingForURI="true" proxyName="somehostname.com" proxyPort="443" scheme="https"/>
  • Restart each the Jira application (or each Jira node of the cluster if using Jira Data Center)

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.