2016-07-16 2 views
1

Я такую ​​ситуацию:JIRA, третья сторона SSL, Перенаправление на CentOS

  1. JIRA, установленных на VPS (CentOS 5)
  2. я могу получить доступ к JIRA в http://www.example.com:8080
  3. несанкционированно SSL установлен на https: /www.example.com
  4. субдомен http://jira.example.com

то, что я хочу сделать это followi нг:

a. Чтобы перенаправить все http на https b. JIRA (на 8080) для работы на https c. jira.example.com перенаправить на https://www.example.com:8080

Я могу достичь (a), но не с (b) и (c), хотя я следил за руководством Atlassian.

Это код для соединителя в server.xml

<Connector port="8080" 

       maxThreads="150" 
       minSpareThreads="25" 
       connectionTimeout="20000" 

       enableLookups="false" 
       maxHttpHeaderSize="8192" 
       protocol="HTTP/1.1" 
       useBodyEncodingForURI="true" 
       redirectPort="8443" 
       acceptCount="100" 
       disableUploadTimeout="true" 

       scheme="https" 
       proxyName="jira.example.com" 
       proxyPort="443" 
       secure="true" 

       /> 

То, что я не понял, как настроить виртуальный хост. Нужен ли мне VH для порта 443? или 80 (для jira.example.com)

Я прочитал руководство от Atlassian о том, как использовать SSL, но это руководство генерирует CSR, а затем приобретает SSL. Теперь у меня есть SSL, так как я могу его использовать? У меня нет необходимых файлов, как показано в руководстве.

Это мой В.Х. код (взято из Jira Документах):

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

    ProxyRequests Off 
    ProxyVia Block 
    ProxyPreserveHost On 

    <Proxy *> 
     Require all granted 
    </Proxy> 

    ProxyPass/https://www.example.com:8080/  <--- If https works 
    ProxyPassReverse/https://www.example.com:8080/ 
</VirtualHost> 

Любые идеи? Спасибо

ответ

0

Поскольку у вас уже есть Apache, работающий как обратный прокси, вы должны использовать его для проксирования всех запросов в Jira и позволить ему обрабатывать SSL/TLS. Для этого вам нужно будет проверить, какие домены включены в ваш сертификат:

a) Ваш сертификат включает jira.example.com в поле SAN. В этом случае конфигурация будет выглядеть следующим образом:

server.xml:

<Connector port="8080" 

      maxThreads="150" 
      minSpareThreads="25" 
      connectionTimeout="20000" 

      enableLookups="false" 
      maxHttpHeaderSize="8192" 
      protocol="HTTP/1.1" 
      useBodyEncodingForURI="true" 
      redirectPort="8443" 
      acceptCount="100" 
      disableUploadTimeout="true" 

      scheme="https" 
      proxyName="jira.example.com" 
      proxyPort="443" 

/> 

vhost.conf:

<VirtualHost *:80> 
    ServerName jira.example.com 
    DocumentRoot /var/www/jira/htdocs 
    RewriteEngine On 
    # strip Proxy header to mitigate CGI vuln (https://httpoxy.org) 
    RequestHeader unset Proxy 
    RewriteRule /(.*) https://jira.example.com/$1 [R=permanent,L,NC,NE] 

    CustomLog /var/www/jira/logs/access.log combined 
    ErrorLog /var/www/jira/logs/error.log 
</VirtualHost> 

<VirtualHost *:443> 
    SSLEngine On 
    SSLCompression off 
    SSLHonorCipherOrder On 
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 

    SSLCertificateFile /etc/apache2/ssl/jira.example.com.crt.pem 
    SSLCertificateKeyFile /etc/apache2/ssl/jira.example.com.key.pem 
    SSLCertificateChainFile /etc/apache2/ssl/jira.example.com.crt_intermediate.pem 


    ServerName jira.example.com 
    DocumentRoot /var/www/jira/htdocs 

    Header always set Strict-Transport-Security "max-age=31536000" 
    # strip Proxy header to mitigate CGI vuln (https://httpoxy.org) 
    RequestHeader unset Proxy 

    RewriteEngine On 

    RewriteCond %{HTTP_HOST} !^jira.example.com$ 
    RewriteRule ^/(.*)$ https://jira.example.com/$1 [R=permanent,L,NC,NE] 

    CustomLog /var/www/jira/logs/access.log combined 
    ErrorLog /var/www/jira/logs/error.log 

    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass/http://127.0.0.1:8080/ 
    ProxyPassReverse/http://127.0.0.1:8080/ 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
</VirtualHost> 

Это будет полномочие все запросы в Apache и направить их в Jira когда это доступ к jira.example.com. Он также перенаправит вас на https при доступе к jira.example.com через простой http.

b) Ваш сертификат содержит только www.example.com. В этом случае вам нужно будет получить доступ к jira через, например. www.example.com/jira

server.xml:

<Connector port="8080" 

      maxThreads="150" 
      minSpareThreads="25" 
      connectionTimeout="20000" 

      enableLookups="false" 
      maxHttpHeaderSize="8192" 
      protocol="HTTP/1.1" 
      useBodyEncodingForURI="true" 
      redirectPort="8443" 
      acceptCount="100" 
      disableUploadTimeout="true" 

      scheme="https" 
      proxyName="www.example.com" 
      proxyPort="443" 

/> 

[...] 

<Context path="/jira" docBase="../jira" debug="0" reloadable="false" useHttpOnly="true"> 

Это последняя часть имеет важное значение там Jira, чтобы генерировать правильные ссылки.

vhost.конф:

<VirtualHost *:80> 
    ServerName www..example.com 
    DocumentRoot /var/www/jira/htdocs 
    RewriteEngine On 
    # strip Proxy header to mitigate CGI vuln (https://httpoxy.org) 
    RequestHeader unset Proxy 
    RewriteRule /(.*) https://www.example.com/$1 [R=permanent,L,NC,NE] 

    CustomLog /var/www/jira/logs/access.log combined 
    ErrorLog /var/www/jira/logs/error.log 
</VirtualHost> 

<VirtualHost *:443> 
    SSLEngine On 
    SSLCompression off 
    SSLHonorCipherOrder On 
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 

    SSLCertificateFile /etc/apache2/ssl/www.example.com.crt.pem 
    SSLCertificateKeyFile /etc/apache2/ssl/www.example.com.key.pem 
    SSLCertificateChainFile /etc/apache2/ssl/www.example.com.crt_intermediate.pem 


    ServerName www.example.com 
    DocumentRoot /var/www/jira/htdocs 

    Header always set Strict-Transport-Security "max-age=31536000" 
    # strip Proxy header to mitigate CGI vuln (https://httpoxy.org) 
    RequestHeader unset Proxy 

    RewriteEngine On 

    RewriteCond %{HTTP_HOST} !^www.example.com$ 
    RewriteRule ^/(.*)$ https://www.example.com/$1 [R=permanent,L,NC,NE] 

    CustomLog /var/www/jira/logs/access.log combined 
    ErrorLog /var/www/jira/logs/error.log 

    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass /jira http://127.0.0.1:8080/jira 
    ProxyPassReverse /jira http://127.0.0.1:8080/jira 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
</VirtualHost> 

Эта установка имеет то преимущество, что вам не нужно, чтобы настроить свой сертификат в Jira, но вместо этого может сделать все SSL вещи в Apache.

Смежные вопросы