SSL в проекте REST Lift, с чего начать? - PullRequest
0 голосов
/ 07 марта 2011

Мы делаем проект в Scala, используя Lift для предоставления некоторых веб-сервисов в стиле REST для клиентов (Java-скрипт через AJAX). По некоторым деловым причинам мы решили поместить все это в SSL, но я не уверен, с чего начать. Выводы будет высоко ценится.

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Независимо от того, какое серверное программное обеспечение в настоящее время обрабатывает HTTP-трафик (например, Jetty, Nginx, Apache ...), почти наверняка есть средства для добавления поддержки SSL и отключения простого HTTP; попробуйте сначала.

Что касается основного механизма добавления поддержки SSL, он выглядит примерно так:

  1. Создать пару ключей RSA (размер ключа должен быть не менее 1024 бит). Этот шаг должен предложить вам ввести некоторую информацию о вас, вашей организации и имени хоста сервера (« common name » на языке X.509). Он также должен запросить парольную фразу, которая будет использоваться для шифрования закрытого ключа.
  2. Пара ключей состоит из личного ключа (это часть, которую вы не должны передавать никому) и самозаверяющего сертификата , который содержит наряду с другими метаданными: открытый ключ .
  3. Если вы хотите получить настоящий SSL-сертификат, подписанный картелем, чтобы обычные пользователи не видели неприятных предупреждений при посещении вашего сайта, вам необходимо сгенерировать Запрос на подпись сертификата (CSR) из вашей пары ключей и отправьте его в центр сертификации SSL, который создаст сертификат, полученный из вашего CSR, но подписанный своим личным ключом. К счастью, в последние годы бизнес SSL CA стал чрезвычайно конкурентоспособным, поэтому ценообразование больше не должно быть серьезным препятствием.
  4. Если вы не планируете получить настоящий SSL-сертификат, подписанный картелем, вы можете использовать закрытый ключ и самоподписанный сертификат как есть.
  5. В любом случае вам нужно указать веб-серверу, как найти сертификат (самоподписанный или подписанный ЦС) и закрытый ключ. Apache HTTPD предпочитает хранить две вещи в отдельных файлах; большинство серверов JVM предпочитают, чтобы они были инкапсулированы в хранилище ключей. Лучший формат хранилища ключей для общего пользования называется PKCS # 12 , это отраслевой стандарт. Создание файла PKCS # 12 из отдельного ключа и получение сертификата немного сложно, посмотрите на ServerFault, если вы не можете понять это. :)
  6. Обычно вы хотите поместить фразу-пароль закрытого ключа в файл конфигурации сервера, поэтому убедитесь, что файл конфигурации (и файл, содержащий закрытый ключ) имеют самые ограничивающие разрешения, которые все еще будут работать.
1 голос
/ 09 марта 2011
0 голосов
/ 07 марта 2011

Вы не уверены, с чего начать, с какого бита? SSL?

Установите stunnel (или аналогичный) перед вашим веб-приложением и отключите брандмауэр, чтобы доступ к нему имел только stunnel. Тогда ваши клиенты смогут получить доступ к вашему веб-приложению только через SSL и через stunnel.

...