Поиск по блогу

среда, 23 мая 2012 г.

Настройка SSL для приложений в tomcat


Исходные данные:
  1. ОС: Fedora 16
  2. Tomcat 7.0.27
  3. JDK 6u32 (6u31)
Последовательность действий:
  1. Установить tomcat и jdk:
  2. Рассмотрим случай, когда Tomcat по умолчанию использует порт 8080. Необходимо, чтобы файерволл разрешил выход с этого порта. Добавим правило в iptables:
    # vim /etc/sysconfig/iptables
    вписать
    -A INPUT -m state --state NEW -m udp -p udp --dport <8080> -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport <8080> -j ACCEPT
    

    #service iptables restart 
    Fedora 16:
    #systemctl restart iptables.service
  3. Проверить, что все запускается:
    /path/bin/startup.sh 
    или
    /path/bin/catalina.sh start
    http://localhost:8080
  4. Необходимо настроить SSL на установленном tomcat:
    1. остановить томкат, если запущен:
      /path/bin.shutdown.sh
      или
      /path/bin/catalina.sh stop 
    2. нужно сгенерировать
      self-signed sertificate
      и приватный ключ сервера:
      keytool -genkey -alias tomcat -keyalg RSA 
      [ -keysize 1024 -keystore /path/to/keystore/.keystore ] 
      
      keytool
      будет просить ввести пароли. Надо ввести. Можно указать дополнительные данные
      (organisation, state, name, etc)
      . И согласиться с введенными данными. Результат:
      /%username%/.keystore
      keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 
      -keystore /path/conf/.keystore 
      
      Результат: 1024-битный
      .keystore
      , расположенный в
      /path/conf/.keystore
    3. экспорт
      .keystore
      в файл сертификата
      name.cer
      :
      cd /path/conf/ 
       keytool -export -alias tomcat -file server.cer
      Вводим пароль от нашего хранилища (если мы его задавали, а лучше было бы задать) и получаем результат:
      /path/conf/server.cer 
    4. Создание key файла-приватного ключа:
      openssl genrsa -out server.key
      по умолчанию 512 бит размер ключа
      openssl genpkey -algorithm RSA -out server.key 
      -pkeyopt rsa_keygen_bits:2048
      
      Результат:
      /path/conf/server.key 
    5. Конфигурация в файле
      /path/conf/server.xml 
      :
      < !-- 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"
                     SSLCertificateFile="/path/conf/server.cer"
                     SSLCertificateKeyFile="/path/conf/server.key"
                     keystoreFile="/path/conf/.keystore"
                     keystorePass="keystore_password" / >
      
    6. запустить томкат
    7. проверка:
      https://localhost:8443
  5. Взять (с сервера или попросить товарища или собрать самому) war файл свежей версии проекта
    X
    (X.war) и скопировать пока в какую-нибудь директорию, отличную от
    /path/
    , например,
    /home/%username%/
    .
  6. Остановить томкат, если еще не остановлен.
  7. cp /home/%username%/X.war /path/webapps/ 
  8. Запустить томкат. War файл сам развернется и приложение будет готово.
  9. И:
     https://localhost:8443/X/ 
    Если выдается нужная страничка, то вообще отлично.
Источники:

2 комментария: