У меня есть сервер Tomcat (JIRA), работающий за обратным прокси-сервером Apache (потребовалось время, но я добрался до него). Я обновляю свой старый сервер и добавляю Apache, чтобы получить дополнительную функциональность и безопасность. Доступ к старому серверу осуществлялся через
https://example.com:8443
Я хочу, чтобы Apache перенаправлял всех, кто посещает старый адрес с портом 8443 (то есть из старых закладок и т. Д.), На https://example.com
но я изо всех сил пытаюсь заставить его работать. Я могу сделать следующее
http://example.com
-> https://example.com
http://example.com:8443
-> https://example.com
но https://example.com:8443
генерирует ошибку SSL-соединения в Chrome. Я немного застрял. В httpd.conf у меня есть
Listen 80
Listen 8443
в httpd-vhosts.conf у меня есть
<VirtualHost *:80>
ServerName example.com
Redirect / https://example.com/
</VirtualHost>
<VirtualHost *:8443>
ServerName example.com
Redirect / https://example.com/
</VirtualHost>
в httpd-ssl.com у меня есть
Listen 443
<VirtualHost *:443>
ServerName example.com
SSLEngine On
SSLCertificateFile "C:\Program Files\Atlassian\JIRA\jre\server.crt"
SSLCertificateKeyFile "C:\Program Files\Atlassian\JIRA\jre\server.key"
SSLProxyEngine Off
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example.com:8080/
</VirtualHost>
Вам по-прежнему необходимо использовать SSL на порту 8443, чтобы прочитать запрос и дать ответ.
Я использую это с Jira в apache. Примечание: я использую / jira, который я настроил в jira / conf / server.xml (см. Ниже). Также обратите внимание на proxyName = "example.com"
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/jira/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect permanent / https://example.com/jira/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /jira http://localhost:8080/jira
ProxyPassReverse /jira http://localhost:8080/jira
<Location />
Order allow,deny
Allow from all
</Location>
SSLEngine on
SSLCertificateFile ....crt
SSLCertificateKeyFile ....key
SSLCertificateChainFile ....crt
</VirtualHost>
server.xml
<?xml version="1.0" encoding="utf-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
-->
<Service name="Catalina">
<Connector acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
enableLookups="false"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
port="8081"
protocol="HTTP/1.1"
redirectPort="8443"
useBodyEncodingForURI="true"/>
<Connector acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
enableLookups="false"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
useBodyEncodingForURI="true"
scheme="https"
proxyName="example.com"
proxyPort="443"/>
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
<Manager pathname=""/>
</Context>
</Host>
<Valve className="org.apache.catalina.valves.AccessLogValve" resolveHosts="false"
pattern="%a %{jira.request.id}r %{jira.request.username}r %t "%m %U%q %H" %s %b %D "%{Referer}i" "%{User-Agent}i" "%{jira.request.assession.id}r""/>
</Engine>
</Service>
</Server>