Назад | Перейти на главную страницу

YouTrack на Tomcat 7 с использованием SSL

Я бегу YouTrack экземпляр развернут с использованием Tomcat 7, и он отлично работает на http://example.com:8080/youtrack

Apache уже настроен для поддержки SSL для основного домена (у меня есть файл .pem). Обе https://example.com и http://example.com доступны без проблем.

Порт 8443 уже используется какой-то другой службой (https://example.com:8443 показывает мне панель администратора Plesk).

Теперь я хочу настроить YouTrack для использования https://youtrack.example.com

Как я могу этого добиться?

Нужно ли мне настраивать Tomcat для поддержки SSL (генерировать отдельный ключ и т. Д.) Или просто проксировать запросы от Apache к Tomcat?

Думаю, первым делом нужно настроить YouTrack для доступа на https://example.com:8444/youtrack, затем проксируйте запросы с помощью Apache mod_proxy.

Как я могу это сделать?

Мой /var/lib/tomcat7/conf/server.conf по умолчанию, без изменений: http://pastie.org/9385045

Мой /usr/share/tomcat7/bin/setenv.sh содержит запись для изменения URL-адреса YouTrack по умолчанию: -Djetbrains.youtrack.baseUrl=http://youtrack.example.com

Конфигурация виртуальных хостов:

$ cat /etc/apache2/sites-enabled/default

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/default
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/default>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Хост SSL:

$ cat /etc/apache2/sites-enabled/default-ssl

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@example.com

DocumentRoot /var/www/default
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www/default>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

SSLEngine on


SSLCertificateFile    /etc/ssl/certs/mailserver.pem
SSLCertificateKeyFile /etc/ssl/private/mailserver.pem

#SSLVerifyClient require
#SSLVerifyDepth  10

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-6]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Похоже, лучший выбор mod_proxy было бы mod_jk.

Видеть Работа с mod_jk.

Вам не нужно настраивать SSL для tomcat, просто используйте Apache для проксирования запроса на http://example.com:8080/youtrack через mod_proxy.

Сначала сгенерируйте / купите сертификат для нового домена youtrack.example.com. Затем добавьте эту запись в свой config.

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

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

    SSLEngine on

    SSLCertificateFile    /your/ssl/public/path/mailserver.pem
    SSLCertificateKeyFile /your/ssl/private/path/mailserver.pem

    ProxyPass / http://example.com:8080/youtrack/
    ProxyPassReverse / http://example.com:8080/youtrack/

</VirtualHost>

Больше информации: Вот и Вот