Настройте SSL (самоподписанный сертификат) с Tomcat - PullRequest
8 голосов
/ 12 апреля 2010

Я в основном слежу за этой страницей:

http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

Я использовал эту команду для создания хранилища ключей

keytool -genkey -alias tomcat -keyalg RSA -keystore / etc / tomcat6 / keystore

и ответил на подсказки

Затем я отредактировал свой файл server.xml и раскомментировал / отредактировал эту строку

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
           keystoreFile="/etc/tomcat6/keystore" 
           keystorePass="tomcat" />

затем я иду в файл web.xml для своего проекта и добавляю это в файл

     <security-constraint>
            <web-resource-collection>
                    <web-resource-name>Security</web-resource-name>
                    <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
                    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
    </security-constraint>

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

Unable to connect

Firefox can't establish a connection to the server at localhost:8443.

*   The site could be temporarily unavailable or too busy. Try again in a few
      moments.

*   If you are unable to load any pages, check your computer's network
      connection.

Если я закомментирую строки, добавленные в мой файл web.xml, веб-приложение будет работать нормально. Мой файл журнала в / var / lib / tomcat6 / logs ничего не говорит. Я не могу понять, если это проблема с моим файлом хранилища ключей, моим файлом server.xml или моим файлом web.xml .... Любая помощь приветствуется

Я использую Tomcat 6 в Ubuntu.

Редактировать: я изменил свой server.xml на

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
           keystoreFile="/etc/tomcat6/keystore" 
           keystorePass="tomcat" />

в случае, если возникла проблема с его автоматической настройкой на «APR», как предложено в учебнике по tomcat (не уверен, есть ли у меня это или как узнать, если это так). Однако я все еще получаю ту же ошибку.

Ответы [ 2 ]

5 голосов
/ 12 апреля 2010

Ну, я идиот ...

У меня сложилось впечатление, что netbeans перезапускает мой сервер для меня, потому что eclipse знала, когда файлы, требующие перезапуска, были изменены, и он перезапустит сервер для вас. Очевидно, NetBeans не имеет такой функциональности. Как только я вручную перезапустил сервер, используя скрипт в /etc/init.d/tomcat6, тогда все заработало ..

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

1 голос
/ 12 апреля 2010

Я только что протестировал ту же установку с ванильным Tomcat в Ubuntu и:

  • Я сгенерировал хранилище ключей
  • Я раскомментировал коннектор SSL в server.xml и указал на свое хранилище ключей
  • Я добавил ограничение безопасности в web.xml my-webapp для принудительного использования SSL

И доступ к https://localhost:8443/my-webapp просто работает на моей машине (с).

Вы обращаетесь к приложению, используя правильный протокол, т.е. https:// (обратите внимание на s в https)?

Кстати, я бы рекомендовал установить атрибут redirectPort=8443 в соединителе без SSL, чтобы http://localhost:8080/my-webapp был перенаправлен на https://localhost:8443/my-webapp.

...