이 문서는 Apache HTTPD 서버를 이용해 하나 또는 여러개의 Atlassian 제품을 접속하는 통일된 HTTPS URL 주소를 구성하는 방법을 제공한다.

Overview

네트웍 구성도

접속 흐름 보기


사전 조건

도메인 및 SSL 인증서

Reverse Proxy 구성할 서버 준비

Application context 사용하지 않음

본 예에서는 http://curvc.com/jira 와 같이 "jira" context를 사용하지 않음을 가정한다. Context를 사용하여 reverse proxy 를 구성할 수 있지만 드문 구성이다.

CentOS SELinux policy 수정

# > sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

Step 1) 인증서 준비

필요한 인증서 관련 파일을 준비한다. 인증 기관별로 제공되는 파일 설명을 참조하여 준비한다 (SSL 인증서 발급 및 적용).

Step 2) Reverse Proxy 구성

본 문서는 reverse proxy로 Apache httpd를 사용하여 설명한다.


    .
    .
    .
NameVirtualHost *:80
Listen 80
    .
    .
    .
IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf




    .
    .
    .
NameVirtualHost *:443
Listen 443 https
    .
    .
    .
<VirtualHost _default_:443>
   SSLEngine on
   SSLProtocol all -SSLv2 -SSLv3
   SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
   SSLCertificateFile /etc/ssl/certs/STAR_curvc_com.crt
   SSLCertificateKeyFile /etc/ssl/certs/curvc.key
   SSLCertificateChainFile /etc/ssl/curvc_com.ca-bundle
</VirtualHost>




<VirtualHost *:80>
    ServerName jira.curvc.com

    RemoteIPHeader X-Forwarded-For
    ProxyPreserveHost   On
    RewriteEngine On
    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Require all granted
    </Proxy>

    Redirect            "/" "https://jira.curvc.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName jira.curvc.com

    ProxyPreserveHost   On
    RewriteEngine On
    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Require all granted
    </Proxy>

    ProxyPass           "/" "http://10.0.100.10:8080/"
    ProxyPassReverse    "/" "http://10.0.100.20:8080/"
    RemoteIPHeader X-Forwarded-For

    SSLEngine on
    SSLCertificateKeyFile /etc/ssl/certs/curvc.key
    SSLCertificateFile /etc/ssl/certs/STAR_curvc_com.crt
    SSLCertificateChainFile /etc/ssl/certs/curvc_com.ca-bundle

</VirtualHost>




<VirtualHost *:80>
    ServerName confluence.curvc.com

    ProxyPreserveHost   On
    RewriteEngine On
    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Require all granted
    </Proxy>

    Redirect             "/" "https://confluence.curvc.com/"
    RemoteIPHeader X-Forwarded-For
</VirtualHost>

<VirtualHost *:443>
    ServerName confluence.curvc.com

    ProxyPreserveHost   On
    ProxyRequests Off
    RewriteEngine On

    SSLEngine on
    SSLProxyEngine on
    SSLCertificateKeyFile /etc/ssl/certs/curvc.key
    SSLCertificateFile /etc/ssl/certs/STAR_curvc_com.crt
    SSLCertificateChainFile /etc/ssl/certs/curvc_com.ca-bundle

    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Require all granted
    </Proxy>

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/synchrony
    ProxyPass           "/synchrony" "http://10.0.100.20:8091/synchrony"

    ProxyPass           "/" "http://10.0.100.20:8090/"
    ProxyPassReverse    "/" "http://10.0.100.20:8090/"

     <Location /synchrony>
        Require all granted
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* ws://10.0.100.20:8091%{REQUEST_URI} [P]
    </Location>
</VirtualHost>



구성 완료 후 적용

$ > apache testconfig
$ > apache restart

Step 3) Tomcat Connector 수정

Atlassian application을 종료하고 tomcat의 server.xml 파일을 수정한다.

Bitbucket 5.0 이상을 제외한 Atlassian application의 경우:

<!-- Additional connector for Application link -->
<Connector port="8180" connectionTimeout="20000" maxThreads="200" minSpareThreads="10"
enableLookups="false" acceptCount="10" URIEncoding="UTF-8" />



<Connector port=<default>
	maxThreads=<default>
    minSpareThreads=<default>
    connectionTimeout=<default>
    enableLookups=<default>
    maxHttpHeaderSize=<default>
    protocol=<default>
    useBodyEncodingForURI=<default>
    redirectPort=<default>
    acceptCount=<default>
    disableUploadTimeout=<default>
	proxyName="<subdomain>.<domain>.com"
	proxyPort="443"
	scheme="https"/>

line 12 ~ 14를 추가한다.

Bitbucket 5.0 이상의 경우:

링크를 참고하여 설정한다.

server.scheme=https
server.proxy-port=443
server.proxy-name=bitbucket.curvc.com


설정 완료 후 application을 기동한다.

Step 4) Atlassian Application Base URL 변경

Application 별로 base URL을 https://~ 로 변경한다.

예)

Step 5) Atlassian Application link 수정

이 글을 작성하는 시점에 Application link는 https를 지원하지 않기 때문에 server.xml에 구성한 Application link용 port를 사용하여 application link를 구성한다.

Jira와 Confluence Application link 예)


Apache HTTPD 2.2 고려사항

2.2 환경은 2.4 다른 구성 방법을 적용한다


<VirtualHost *:80>
    ServerName jira.curvc.com

    RemoteIPHeader X-Forwarded-For
    ProxyPreserveHost   On
    RewriteEngine On
    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Allow from all
    </Proxy>

    Redirect            "/" "https://jira.curvc.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName jira.curvc.com

    ProxyPreserveHost   On
    RewriteEngine On
    ProxyVia Off

    <Proxy *>
         Order deny,allow
         Allow from all
    </Proxy>

    ProxyPass           "/" "http://10.0.100.10:8080/"
    ProxyPassReverse    "/" "http://10.0.100.20:8080/"

    SSLEngine on
    SSLCertificateKeyFile /etc/ssl/certs/curvc.key
    SSLCertificateFile /etc/ssl/certs/STAR_curvc_com.crt
    SSLCertificateChainFile /etc/ssl/certs/curvc_com.ca-bundle

</VirtualHost>