Apacheリバースプロキシサーバーの背後で動作するTomcatサーバー(JIRA)を持っています(しばらくかかりましたが、そこに着きました)。古いサーバーをアップグレードし、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
はChromeでSSL接続エラーを生成します。少し行き詰まっています。私が持っている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>
要求を読み取って応答するには、ポート8443でSSLを使用する必要があります。
これをApacheのJiraで使用します。注:私はjira/conf/server.xmlで構成した/ jiraを使用します(以下を参照)。また、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>