OSS Group OSS Group
>  Карта
>  Поиск
>  Контакты
>  OSS Group  ::  Admin  ::  Настройка доступа по https
  
РегистрацияЗабыли пароль?

↓  Быстрый поиск по Wiki


Режим поиска:   И   ИЛИ

↓  Доступные Wiki

↓  Навигация по сайту

[]

↓  Последняя новость

Загрузка...

↓  На эту страницу ссылаются:

Get Firefox!
[~]

Настройка доступа по https

Задача: есть некий виртуальный сайт. Требуется предоставлять доступ к части его только с использованием SSL (по протоколу https://)
Отметим, что при использовании сертификатов SSL возможно также проводить авторизацию клиентов.

Созданиём собственный самоподписанный доверенный сертификат

Cогласно http://www.webscript.ru/stories/04/05/29/2604693 :

# openssl req -new -newkey rsa:2048 -nodes \
  -keyout server.key -x509 -days 1000 \
  -subj /C=RU/ST=RF/L=Moscow/O=MPEI/OU=MonSy/CN=bla/emailAddress=usr@host \
  -out server.crt

Здесь:

-newkey : Тип (rsa) и длина ключа, 1024 или по усмотрению
-nodes : Не шифровать закрытый ключ
-keyout ca.key : Закрытый ключ сохранить в файл ca.key.
-x509 : создать самоподписанный сертификат.
-days : Срок действия сертификата в днях.
-subj : Данные для сертификата, парами /параметр=значение. Пробелы в значениях эскейпируются слешами.
-out ca.crt : Сертификат сохранить в файл ca.crt.

Описание параметров:

  • С - Country, 2 символа. Необязательный параметр.
  • ST - State Name. Необязательный параметр.
  • L - Locality Name (город). Необязательный параметр.
  • O - Organization Name. Необязательный параметр.
  • OU - Organization Unit. Необязательный параметр.
  • CN - Имя сертификата, при создании серверных сертификатов используется доменное имя сайта, для клиентских сертификатов может быть использовано что угодно (Common Name). Обязательный параметр. Максимальная длина 64 символа.
  • emailAddress - почтовый адрес (E-mail address). Необязательный параметр. Максимальная длина 40 символов.

В результате выполнения команды появятся два файла ca.key и ca.crt. Просмотреть данные закрытого ключа и сертификата вы можете с помощью команд:

# openssl rsa -noout -text -in ca.key              (для ключа)
# openssl x509 -noout -text -in ca.crt             (для сертификата)

Настраиваем Apache

Настройки виртуальных хостов желательно вынести в отдельный файл/файлы, включаемые в самом конце httpd.conf.

В описание виртуального хоста добавляем:

ErrorLog logs/ssl-error_log
TransferLog logs/ssl-access_log
SSLEngine on
SSLCertificateFile /var/www/certs/server.crt
SSLCertificateKeyFile /var/www/certs/server.key
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Это даёт возможность работы с этим хостом через https:// .

Для проверки работы SSL получем сертификаты:


openssl s_client -connect host:443 -showcerts

Если на IP висит несколько виртуальных хостов на одном адресе, то:

  • Работа по SSL возможна со всеми (или частью) этих хостов. Но: сертификат у них будет один и тот же. Причина: установление соединения по SSL происходит до посылки имени виртуального хоста по HTTP.
  • В обязательном порядке параметры SSL должны присутствовать в конфигурации ''первого'' описанного на этом IP виртуального хоста. Иначе не получиться соединиться по SSL.

Сообщения вида

31351:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:475:

при вызове openssl -showcert говорят о том, что с сайта
не могут быть получены сертификаты.

Для нужных Directory/Locations ставим параметр SSLRequireSSL - после этого для доступа к ним требуется использовать SSL.


Дата создания: 2006-05-24 11:53:33 (Фетисов Н. А. (naf))
Последнее изменение: 2006-05-24 11:53:33 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 1


  Не показывать комментарии



Wiki::Admin   Оглавление  Карта раздела  Изменения за сутки  Изменения за неделю  Изменения за месяц



Valid XHTML 1.0 Transitional  Valid CSS!  [Valid RSS]