我的server.xml在tomcat中对于amazon ec2单实例上的ssl有问题

时间:2014-06-10 21:46:27

标签: tomcat ssl amazon-ec2

我有一个在弹性beanstalk / ec2上运行的tomcat的单实例 - 我正在尝试配置SSL。我已经将我的证书(和CA链)导入我的密钥库,我试图让tomcat在端口443上做出响应。我已经打开了EC2服务器上的端口,但tomcat没有&似乎在回应它。你看到我的server.xml有什么问题吗?

            <?xml version='1.0' encoding='utf-8'?>
            <!--
              Licensed to the Apache Software Foundation (ASF) under one or more
              contributor license agreements.  See the NOTICE file distributed with
              this work for additional information regarding copyright ownership.
              The ASF licenses this file to You under the Apache License, Version 2.0
              (the "License"); you may not use this file except in compliance with
              the License.  You may obtain a copy of the License at

                  http://www.apache.org/licenses/LICENSE-2.0

              Unless required by applicable law or agreed to in writing, software
              distributed under the License is distributed on an "AS IS" BASIS,
              WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
              See the License for the specific language governing permissions and
              limitations under the License.
            -->
            <!-- Note:  A "Server" is not itself a "Container", so you may not
                 define subcomponents such as "Valves" at this level.
                 Documentation at /docs/config/server.html
             -->
            <Server port="8005" shutdown="SHUTDOWN">
              <!-- Security listener. Documentation at /docs/config/listeners.html
              <Listener className="org.apache.catalina.security.SecurityListener" />
              -->
              <!--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" />
              <!-- Prevent memory leaks due to use of particular java/javax APIs-->
              <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
              <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
              <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

              <!-- Global JNDI resources
                   Documentation at /docs/jndi-resources-howto.html
              -->
              <GlobalNamingResources>
                <!-- Editable user database that can also be used by
                     UserDatabaseRealm to authenticate users
                -->
                <Resource name="UserDatabase" auth="Container"
                          type="org.apache.catalina.UserDatabase"
                          description="User database that can be updated and saved"
                          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                          pathname="conf/tomcat-users.xml" />
              </GlobalNamingResources>

              <!-- A "Service" is a collection of one or more "Connectors" that share
                   a single "Container" Note:  A "Service" is not itself a "Container",
                   so you may not define subcomponents such as "Valves" at this level.
                   Documentation at /docs/config/service.html
               -->
              <Service name="Catalina">

                <!--The connectors can use a shared executor, you can define one or more named thread pools-->
                <!--
                <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
                    maxThreads="150" minSpareThreads="4"/>
                -->


                <!-- A "Connector" represents an endpoint by which requests are received
                     and responses are returned. Documentation at :
                     Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
                     Java AJP  Connector: /docs/config/ajp.html
                     APR (HTTP/AJP) Connector: /docs/apr.html
                     Define a non-SSL HTTP/1.1 Connector on port 8080
                -->
                <Connector port="8080" protocol="HTTP/1.1"
                           connectionTimeout="20000"
                           redirectPort="8443" />

                    <!-- BEGIN SSL CONFIGURATION -->

                <Connector port="443" protocol="HTTP/1.1"
                           connectionTimeout="20000"
                           redirectPort="8443" />


                   <Connector port="443" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   keystoreFile="/usr/share/tomcat7/.keystore"
                   keystorePass="MY_PASSWORD"
                   clientAuth="false" sslProtocol="TLS" />

                <!-- END SSL CONFIGURATION -->


            <!-- A "Connector" using the shared thread pool-->
                <!--
                <Connector executor="tomcatThreadPool"
                           port="8080" protocol="HTTP/1.1"
                           connectionTimeout="20000"
                           redirectPort="8443" />
                -->
                <!-- Define a SSL HTTP/1.1 Connector on port 8443
                     This connector uses the JSSE configuration, when using APR, the
                     connector should be using the OpenSSL style configuration
                     described in the APR documentation -->
                <!--
                <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                           maxThreads="150" scheme="https" secure="true"
                           clientAuth="false" sslProtocol="TLS" />
                -->

                <!-- Define an AJP 1.3 Connector on port 8009 -->
                <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


                <!-- An Engine represents the entry point (within Catalina) that processes
                     every request.  The Engine implementation for Tomcat stand alone
                     analyzes the HTTP headers included with the request, and passes them
                     on to the appropriate Host (virtual host).
                     Documentation at /docs/config/engine.html -->

                <!-- You should set jvmRoute to support load-balancing via AJP ie :
                <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
                -->
                <Engine name="Catalina" defaultHost="localhost">

                  <!--For clustering, please take a look at documentation at:
                      /docs/cluster-howto.html  (simple how to)
                      /docs/config/cluster.html (reference documentation) -->
                  <!--
                  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
                  -->

                  <!-- Use the LockOutRealm to prevent attempts to guess user passwords
                       via a brute-force attack -->
                  <Realm className="org.apache.catalina.realm.LockOutRealm">
                    <!-- This Realm uses the UserDatabase configured in the global JNDI
                         resources under the key "UserDatabase".  Any edits
                         that are performed against this UserDatabase are immediately
                         available for use by the Realm.  -->
                    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                           resourceName="UserDatabase"/>
                  </Realm>

                  <Host name="localhost"  appBase="webapps"
                        unpackWARs="true" autoDeploy="true">

                    <!-- SingleSignOn valve, share authentication between web applications
                         Documentation at: /docs/config/valve.html -->
                    <!--
                    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
                    -->

                    <!-- Access log processes all example.
                         Documentation at: /docs/config/valve.html
                         Note: The pattern used is equivalent to using pattern="common" -->
                    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                           prefix="localhost_access_log" suffix=".txt" rotatable="false"
                           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

                <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto" internalProxies="10\.\d+\.\d+\.\d+|192\.168\.\d+\.\d+|169\.254\.\d+\.\d+|127\.\d+\.\d+\.\d+|172\.(1[6-9]|2[0-9]|3[0-1])\.\d+\.\d+" />
                  </Host>
                </Engine>
              </Service>
            </Server>

1 个答案:

答案 0 :(得分:0)

这可能为时已晚,无法帮助您,但对其他任何人进行搜索:

Linux通常会阻止非root用户打开1024以下的端口。 您可以将端口更改为更高的端口并将其转发到443。 以下是如何转发端口的示例:https://stackoverflow.com/a/3561888/1299497