It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to add SSL to Jira/Confluence clusters?

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

0 votes
DPK_J Fancyface McSparklypants Feb 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.

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

I will do it as your advice.

Suggest an answer

Log in or Sign up to answer
Community showcase
Asked in Data Center

AMA: How to plan ahead for Data Center - Expert advice from an Atlassian panel

This AMA is now closed Hi! I'm Jacob Shepard a Product Marketing Manager on Atlassian’s Enterprise Team. We know that moving to Data Center is no small task. To do so effectively demands extensive ...

10,569 views 47 36
View question

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you