Задача: есть некий виртуальный сайт. Требуется предоставлять доступ к части его только с использованием 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
Здесь:
Описание параметров:
В результате выполнения команды появятся два файла ca.key и ca.crt. Просмотреть данные закрытого ключа и сертификата вы можете с помощью команд:
# openssl rsa -noout -text -in ca.key (для ключа) # openssl x509 -noout -text -in ca.crt (для сертификата)
Настройки виртуальных хостов желательно вынести в отдельный файл/файлы, включаемые в самом конце 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 висит несколько виртуальных хостов на одном адресе, то:
Сообщения вида
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 Карта раздела Оглавление Изменения за сутки Изменения за неделю Изменения за месяц