Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to add SSL to Jira/Confluence clusters?

Raw Main February 26, 2020

We are using this kind of cluster:

# Load balancer


Setting as:

default_backend jira_servers

default_backend confluence_servers

backend jira_servers
balance roundrobin
server server1 check maxconn 20
server server2 check maxconn 20

backend confluence_servers
balance roundrobin
server server3 check maxconn 20
server server4 check maxconn 20

# Application

## Jira

2 nodes

## Confluence

2 nodes

If add ssl to this cluster, for Jira and Confluence, the official site has fully guide:

In this way, should add certificate file to all the servers of the cluster.

But if add the certificate file to load balancer server only, as document:

It also looks good.

So which is the best practice? Our network has only allow load balancer server can be accessed from outside. But application server don't allow. Is it unnecessary to set certificate file to them?


Another question, if set certificate file to those application servers, we have these files which already be created:

- .csr
- .pem

But Jira and Confluence official guide didn't show how to use by these files. They provided a guide for using this way:

### Confluence

keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore <MY_KEYSTORE_FILENAME>
keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME>

Maybe can use our current .csr file here, but what's `MY_CERTIFICATE_FILENAME`? Can .pem file be used here?

### Jira

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="8192" SSLEnabled="true"
maxThreads="150" minSpareThreads="25"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" useBodyEncodingForURI="true"
keyAlias="jira" keystoreFile="<Jira_HOME>/jira.jks" keystorePass="changeit" keystoreType="JKS"/>

Is it necessary to use .jks file as keystoreFile here? And we don't have password for current .pem file, so can't use .pem file here, too?

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 26, 2020

@Raw Main  I have almost similar setup,

  • jira.domain -> Main Jira instance
  • staging_jira.domain -> Staging instance for Jira
  • docs.domain -> Confluence instance
  • internal.domain -> internal documentation instance

I am running all of them behind proxy server accessible on HTTPS using *.domain SSL certificate. And my Jira and Confluence are on HTTP with port blocked for external access.

So as per my experience using SSL certificate on proxy server (with virtual hosts) is best way. This way you make minimal changes to Jira/Conflence setup (you only need to add proxyName=*.domain, proxyPort=433, scheme=https to Connector in server.xml file).


Also added bonus is if in future if we need to add more services on same domain they can also benefit from same SSL certificate.

Raw Main February 26, 2020

@DPKJ Thank you very much for your answer! That looks a very good approach.

I will do it as your advice.

dujas September 20, 2021


Not sure whether this post is still available, I happened to find this one while configuring the SSL on my haproxy.

Do you meet any "Gadget feed URL" error after setting up the SSL on the proxy? I met this error once I finished configuring the self signed cert though I haved updated the base URL.

AUG Leaders

Atlassian Community Events