Tomcat 7.0.23 не может установить SSL-соединение с сервера Apache. - PullRequest
0 голосов
/ 12 декабря 2011

Привет, у меня есть следующие настройки server.xml.

Server port="7005" shutdown="SHUTDOWN-TOMCAT-C">
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
    <Listener className="org.apache.catalina.core.JasperListener" />
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <Service name="Catalina">
        <Connector port="7070" protocol="org.apache.coyote.http11.Http11NioProtocol" 
                   connectionTimeout="20000" 
                   redirectPort="7443" />
        <Connector port="7443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" 
                   SSLEnabled="true" scheme="https" secure="true" clientAuth="want" sslProtocol="TLS" 
                   keystoreFile="${key.path}\compresskey.bin" keystorePass="${keystorePass}" 
                   compression="on" compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>
        <Connector port="7009" protocol="org.apache.coyote.ajp.AjpProtocol" redirectPort="7443" enableLookups="false"  />

        <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat-c">
            <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                     channelSendOptions="10">
                <Manager className="org.apache.catalina.ha.session.BackupManager"
                       expireSessionsOnShutdown="false"
                       notifyListenersOnReplication="true"
                       mapSendOptions="10"/>
                <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                         filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
            </Cluster>

<Context path="/mvc2_app1"
                      docBase="${user.home}\webapps\mvc2_app1"
                      cookies="true"
                      override="true"
                      reloadable="false"
                      swallowOutput="true"
                      distributable="true"
                      logEffectiveWebXml="true"
                      xmlNamespaceAware="false"
                      xmlValidation="false"
                      className="org.apache.catalina.core.StandardContext">
</context>
</service>

</host>

мой работник. Свойства

worker.tomcat-c.port=7009
worker.tomcat-c.host=localhost
worker.tomcat-c.type=ajp13
worker.tomcat-c.lbfactor=1

Вот мои настройки httpd.conf.

<VirtualHost ${host}:443> 
SSLEngine On ServerName ${host} 
ErrorLog "logs/error.log" 
LogLevel warn 
SSLCertificateFile conf/ssl/server.crt 
SSLCertificateKeyFile conf/ssl/server.key 
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
SSLProxyEngine On 
ServerAdmin local@admin.com 
RewriteEngine On 

ProxyPreserveHost On #applications on 5443 
ProxyPass /mvc2_app1 https://${host}:7443/mvc2_app1 

ProxyPassReverse /mvc2_app1 https://${host}:7443/mvc2_app1 
</virtual_host>

Когда я пытаюсь подключиться к https://localhost/mvc2_app1,, я получаю ошибку 500 proxy error.

Вот мой error.log прокси: ошибка во время SSL рукопожатия с удаленным сервером, возвращаемым / mvc2_app1 proxy: передать телу запроса не удалось $ {local ip}: 7443 ($ {host}) из $ {local ip}

какие-либо советы или советы?

Спасибо.

- обновление - Я могу подключиться к серверу Apache без проблем. https://localhost работает, но https://localhost/mvc2_app1 не работает.

Итак, мой журнал котов таков.

Dec 25, 2011 10:21:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-7070"]
Dec 25, 2011 10:21:57 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Dec 25, 2011 10:21:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-7443"]
Dec 25, 2011 10:21:58 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Dec 25, 2011 10:21:58 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-7009"]
    Dec 25, 2011 10:21:58 PM org.apache.catalina.tribes.membership.McastServiceImpl setupSocket
    INFO: Setting cluster mcast soTimeout to 500
    Dec 25, 2011 10:21:58 PM org.apache.catalina.tribes.membership.McastServiceImpl waitForMembers
    INFO: Sleeping for 1000 milliseconds to establish cluster membership, start level:4
    Dec 25, 2011 10:21:59 PM org.apache.catalina.tribes.membership.McastServiceImpl waitForMembers
    INFO: Done sleeping, membership established, start level:4
    Dec 25, 2011 10:21:59 PM org.apache.catalina.tribes.membership.McastServiceImpl waitForMembers
    INFO: Sleeping for 1000 milliseconds to establish cluster membership, start level:8
    Dec 25, 2011 10:22:00 PM org.apache.catalina.tribes.membership.McastServiceImpl waitForMembers
    INFO: Done sleeping, membership established, start level:8
    Dec 25, 2011 10:22:00 PM org.apache.catalina.tribes.tipis.AbstractReplicatedMap init
    INFO: Initializing AbstractReplicatedMap with context name:/mvc2_app1
    Dec 25, 2011 10:22:00 PM org.apache.catalina.tribes.tipis.AbstractReplicatedMap init
    INFO: Initializing AbstractReplicatedMap with context name:/mvc2_app2

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Вы смешиваете mod_jk и mod_proxy.

Параметры worker.properties предназначены для mod_jk, в котором используется AJP, но они не используются mod_proxy_ajp (который в настоящее время рекомендуется более mod_jk для соединений AJP).

Ваша конфигурация ProxyPassReverse использует mod_proxy_http (URL https://, а не ajp://), а не mod_jk или mod_proxy_ajp. Для этого нет особого смысла включать AJP на Tomcat.

Возможно, вам не нужно использовать HTTPS между вашим сервером Apache Httpd и вашим сервером Apache Tomcat (от локального до локального). Однако, если вам это необходимо, используйте директивы SSLProxy*, как указано в верхней части документации mod_proxy.

0 голосов
/ 23 января 2012

, поэтому я обновился до Tomcat 7.0.25, и мое приложение работает. Я, по крайней мере, увидел ошибку конфигурации в приложении Spring 3 и смог их исправить.

...