Назад | Перейти на главную страницу

Tomcat SSL недоступен за пределами

У меня есть сервер Tomcat8, который сейчас находится в среде разработки. Некоторое время он работал с выбранным нами портом (8085) и был доступен за пределами нашей сети (разблокирован на брандмауэре). Недавно мы также приняли решение использовать https. Я настроил наш сертификат и добавил директиву коннектора для SSL в server.xml.

К сожалению, это не работает должным образом. SSL работает отлично, когда я пытаюсь открыть его через браузер удаленного рабочего стола (фактически - на локальном хосте), он работает как на https://localhost:8443 и https://domain.com:8443. До этого момента все работает нормально и, как и ожидалось, но когда мы пытаемся получить к нему доступ из другой сети, он не работает, просто дает тайм-аут, когда мы пытаемся получить доступ. https://domain.com:8443 но http://domain.com:8085 отлично работает снаружи.

Мы действительно думали, что это может быть что-то с нашим брандмауэром, хотя мы решили отключить его на время, но он все еще не работает.

Есть идеи, что может вызвать это?

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <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>
  <Service name="Catalina">
    <Connector port="8085" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Connector port="8443" 
        protocol="HTTP/1.1" SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true" alias="tomcat"
        keystoreFile="c:/cert_pn_2015.p12"
        keystorePass="PASS" 
        keystoreType="PKCS12"/>

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

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

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

Вы перенаправляете 8085 на 8443, что дает мне понять, что 8443 закрыт. Когда он достигает 8085, tomcat перенаправляет трафик внутри на 8443 (действует как прокси). Сделайте телнет на 8443, и вы узнаете.

Пожалуйста, посмотрите здесь https://tomcat.apache.org/tomcat-8.0-doc/config/http.html