Tomcat 使用 https 处理多个域
Tomcat handling multple domains using https
我有一个 Tomcat 安装 server.xml 并且正在尝试处理多个域。
这是一个 Linux 安装,Apache 代理请求到 Tomcat。
<Connector port="8223" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true"
keystoreFile="/root/keystore.jks"
keystorePass="xxx" clientAuth="false" sslProtocol="TLS"
SSLEnabled="true" proxyPort="443"/>
当密钥库文件具有单个域的条目时 - 它有效。
我试图附加另一个域 - 但它不起作用。第一个仍然如此。
有什么帮助吗?
已添加
现在在域的 Apache conf 文件中,我有一个用于 https 连接的 VirtualHost 并且
SSLProxyEngine On
ProxyPreserveHost On
ProxyPass /xxx https://localhost:8227/xxx
ProxyPassReverse /xxx https://localhost:8227/xxx
我应该把它改成??
ProxyPreserveHost On
ProxyPass /xxx http://localhost:8226/xxx
ProxyPassReverse /xxx http://localhost:8226/xxx
有一个 HTTP 连接器正在侦听 8226。
正确吗?
从 Tomcat 8.5 开始,每个连接器有多个证书可用(参见 migration guide)。
但是在你的情况下,我没有看到 任何 加密 Apache Httpd 和 Tomcat 之间的通信的安全优势:除非我弄错了,否则它们在同一主机,所有通信都通过环回设备,而不是真正的网络接口。
编辑:Apache服务器的HTTP和HTTPS都可以转发到相同的纯文本<Connector>
。为了Tomcat区分两种类型的请求,需要配置Apache发送X-Forwarded-Proto
头:
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
并添加一个RemoteIpValve
到<Engine>
或<Host>
配置块:
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
(参见documentation)。使用最新的 7.0 服务器(版本 7.0.94 之后),您无需修改任何 <Valve>
的默认参数。
我有一个 Tomcat 安装 server.xml 并且正在尝试处理多个域。
这是一个 Linux 安装,Apache 代理请求到 Tomcat。
<Connector port="8223" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true"
keystoreFile="/root/keystore.jks"
keystorePass="xxx" clientAuth="false" sslProtocol="TLS"
SSLEnabled="true" proxyPort="443"/>
当密钥库文件具有单个域的条目时 - 它有效。
我试图附加另一个域 - 但它不起作用。第一个仍然如此。
有什么帮助吗?
已添加
现在在域的 Apache conf 文件中,我有一个用于 https 连接的 VirtualHost 并且
SSLProxyEngine On
ProxyPreserveHost On
ProxyPass /xxx https://localhost:8227/xxx
ProxyPassReverse /xxx https://localhost:8227/xxx
我应该把它改成??
ProxyPreserveHost On
ProxyPass /xxx http://localhost:8226/xxx
ProxyPassReverse /xxx http://localhost:8226/xxx
有一个 HTTP 连接器正在侦听 8226。
正确吗?
从 Tomcat 8.5 开始,每个连接器有多个证书可用(参见 migration guide)。
但是在你的情况下,我没有看到 任何 加密 Apache Httpd 和 Tomcat 之间的通信的安全优势:除非我弄错了,否则它们在同一主机,所有通信都通过环回设备,而不是真正的网络接口。
编辑:Apache服务器的HTTP和HTTPS都可以转发到相同的纯文本<Connector>
。为了Tomcat区分两种类型的请求,需要配置Apache发送X-Forwarded-Proto
头:
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
并添加一个RemoteIpValve
到<Engine>
或<Host>
配置块:
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
(参见documentation)。使用最新的 7.0 服务器(版本 7.0.94 之后),您无需修改任何 <Valve>
的默认参数。