Eclipse WTP: Как включить SSL на Tomcat? - PullRequest
41 голосов
/ 04 июня 2009

Eclipse WTP создает свой собственный файл server.xml, который он помещает в какую-то папку, которая настраивает экземпляр tomcat, который вы запускаете для своего веб-проекта. Если вы дважды щелкнете по серверу в списке серверов, вы получите красивый экран, который упрощает настройку некоторых аспектов файла server.xml.

Как настроить новое соединение, чтобы разрешить SSL-соединения через порт 8443. Каждый раз, когда я редактирую файл server.xml вручную, eclipse перезаписывает мои изменения настройками, сохраненными на странице свойств сервера конфигурации, и кажется, что там невозможно добавить новый соединитель из интерфейса, который обеспечивает eclipse.

Возможно ли это? Вот разъем, который я хочу добавить:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="D:\apache-tomcat-6.0.18\keystore\key.ssl" keystorePass="pass"
    clientAuth="false" sslProtocol="TLS" />

Ответы [ 4 ]

70 голосов
/ 20 января 2010

Если вы уже создали сервер, вы можете редактировать шаблон server.xml, который он копирует. Если вы используете проводник проекта, он находится в разделе Другие проекты-> Серверы -> Имя сервера Tomcat -> server.xml

31 голосов
/ 05 ноября 2011

Вот как вы можете заставить его работать:
Создайте хранилище ключей:

keytool -genkey -alias tomcat -keypass mypassword -keystore keystore.jks -storepass mypassword -keyalg RSA -validity 360 -keysize 2048

(следуйте инструкциям и заполните информацию)
Затем он должен сохранить файл keystore.key в вашем домашнем каталоге.
Чтобы заставить его работать в затмении:

<Connector port="8443" SSLEnabled="true"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="true" disableUploadTimeout="true"
        acceptCount="100" debug="0" scheme="https" secure="true"
        clientAuth="false" sslProtocol="TLSv1"
        keystoreFile="/home/myUsername/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/keystore.key"
        keystorePass="mypassword" />

Приведенный выше путь для keystoreFile - это то, что вам абсолютно необходимо для правильной работы. Когда eclipse использует местоположение метаданных рабочей области для запуска tomcat, оно копирует некоторые файлы в путь, который выглядит как указано выше. На OS X это будет:

/Users/<username>/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/keystore.key

Надеюсь, это поможет.

Для получения дополнительной информации: Конфигурирование SSL / TLS в Apache Tomcat 7

3 голосов
/ 04 июня 2009

Я понял это. При первом создании нового сервера в представлении «Серверы» щелкните его правой кнопкой мыши и выберите «Создать»> «Сервер». Eclipse WTP берет ваш существующий файл server.xml из установки tomcat и создает новый файл server.xml для вашего проекта, используя оригинал в качестве шаблона.

Если вы измените исходный файл server.xml с необходимой вам конфигурацией, ДО создания нового сервера в eclipse, вы сохраните эти настройки.

Жаль, что затмение не позволяет добавлять эти типы конфигураций после факта.

1 голос
/ 18 июля 2016

При условии, что у вас есть сертификат (ы) и хранилище ключей, как упоминалось ранее в этом посте, я нашел следующее решение для настройки Eclipse для возможности связи с серверами с поддержкой SSL. При использовании средства настройки Tomcat необходимо добавить записи на вкладке «Java» в текстовом поле «Параметры Java» следующим образом:

-Dbusinessobjects.orb.oci.protocol=ssl
-Dcertdir=c:\ssl
-DtrustedCert=c:\ssl\cacert.der
-DsslCert=c:\ssl\servercert.der
-DsslKey=c:\ssl\server.key
-Dpassphrase=c:\ssl\passphrase.txt

Аналогично в Eclipse, щелкните правой кнопкой мыши на имени сервера в окне Project Explorer, выберите Profile As | Конфигурации профиля | Аргументы и добавьте те же опции, которые перечислены выше, в текстовое поле «Аргументы виртуальной машины:». Это должно позволить вам запускать и отлаживать программы снова на серверах с поддержкой SSL.

Текстовое поле Eclipse "VM Arguments:"

...