Соединитель с поддержкой SSL продолжает появляться на сервере. xml - PullRequest
3 голосов
/ 27 февраля 2020

Всякий раз, когда я пытаюсь запустить свое веб-приложение, которое работало нормально, прежде чем я продолжаю получать сообщение об ошибке

 java.lang.IllegalArgumentException: C:\Users\user\.IntelliJIdea2019.2\system\tomcat\projectName\conf\localhost-rsa.jks (The system cannot find the file specified)

Поэтому я решил проблему и нашел свой сервер. xml

  <Server port="8090" 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="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
      <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" />
      </SSLHostConfig>
    </Connector>
    <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="C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="false" deployIgnore="^(?!(manager)|(tomee)$).*">
        <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>

Здесь я думаю, что проблема в том, что есть элемент соединителя с портом 8443, который ссылается на сертификат. Поскольку мне не нужен https, я удаляю соединитель и перезапускаю сервер из IntelliJ, но появляется соединитель, и у меня нет также указывал любой порт https в конфигурации запуска. Что я делаю неправильно ? Как я мог это исправить?

Ответы [ 3 ]

0 голосов
/ 09 марта 2020

Проверьте настройки сервера приложений вашего проекта. Создайте новый сервер приложений, используйте его для запуска приложения. https://www.jetbrains.com/help/idea/configuring-and-managing-application-server-integration.html

Я думаю, вы откуда-то получили код, в котором есть настройки для httpd, и вы не можете понять, как его удалить.

0 голосов
/ 09 марта 2020

Проверьте настройки сервера приложений вашего проекта. Создайте новый сервер приложений, используйте его для запуска приложения. https://www.jetbrains.com/help/idea/configuring-and-managing-application-server-integration.html

Я думаю, вы откуда-то получили код, в котором есть настройки для httpd, и вы не можете понять, как его удалить. Проверьте файл JKS или создайте новый. JKS расшифровывается как Java KeyStore. Это хранилище сертификатов (подписанные публичные c ключи) и [приватных] ключей. Вы можете экспортировать сертификат, хранящийся в файле JKS, в отдельный файл. Вы можете использовать утилиту "keytool", находящуюся в дистрибутивах Java, для поддержания своего доверия JKS и хранилищ ключей. Как и другие типы хранилищ ключей (например, PKCS12, CMS), хранилище JKS защищено паролем, поскольку оно может содержать закрытые ключи, которые должны быть защищены, поскольку они используются для расшифровки информации, зашифрованной ключами publi c. [Приватные] ключи в репозиториях также защищены «паролем ключа», который может совпадать с паролем хранилища ключей (не рекомендуется).

Следующая команда экспортирует сертификат, связанный с псевдонимом. / метка "mycert" в файле JKS "mykeys.jks". Выходной файл "mycert.cer" будет содержать только сертификат (т. Е. Подписанный ключ publi c).

keytool -exportcert -rfc -alias mycert -file mycert.cer -keystore mykeys.jks -storepass passw0rd
0 голосов
/ 03 марта 2020

Удалить redirectPort="8443", redirectPort , используемый для обработки https

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

, порт перенаправления появится на рисунке, когда SSL-запрос поступит на сервер и с порта HTTP-коннектора не может обработать запросы SSL, он будет перенаправлен на определенный порт.

...