We are using this kind of cluster:
# Load balancer
HAProxy
Setting as:
```
frontend jira.mysite.com
bind 10.0.0.3:8080
default_backend jira_servers
frontend confluence.mysite.com
bind 10.0.0.3:8090
default_backend confluence_servers
backend jira_servers
balance roundrobin
server server1 10.0.1.3:8080 check maxconn 20
server server2 10.0.1.4:8080 check maxconn 20
backend confluence_servers
balance roundrobin
server server3 10.0.1.5:8090 check maxconn 20
server server4 10.0.1.6:8090 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:
https://confluence.atlassian.com/adminjiraserver086/running-jira-applications-over-ssl-or-https-990553839.html
https://confluence.atlassian.com/conf72/running-confluence-over-ssl-or-https-982323781.html
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:
https://www.haproxy.com/blog/haproxy-ssl-termination/
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"
sslEnabledProtocols="TLSv1.2,TLSv1.3"
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?
@Raw Main I have almost similar setup,
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.
Hi @DPKJ
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.