SSL-сертификат для бедных. Часть 2
В первой части статьи были рассмотрены создание собственного центра сертификации и выпуск сертификата для нашего Web-сервера.
Один из читателей так же предложил не париться с созданием, а выпустить себе бесплатный сертификат.
Без сомнения предложенный Xelon'ом бесплатный сертификат от избавляет посетителей сайта от необходимости совершать дополнительные телодвижения по установке корневого сертификата в браузер, однако сегодня мы рассмотрим пример авторизации пользователей в защищенной зоне сайта с использованием клиентского сертификата. Создавать свой CA для этого все-таки придется , поэтому будем считать что работа проделана не зря.
Собственно для создания клиенсткого сертификата переходим в директорию нашего ЦС и командуем
# openssl req -new -newkey rsa:512 -nodes -out client.csr -keyout client.key
# openssl ca -batch -out client.crt -infiles client.csr
Первая команда генерирует запрос на сертификат, вторая по этому запросу выдает подписанный сертификат.
Дабы получить сертификат в удобоваримом для браузеров виде коммандуем
# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 \
— name "my_client_certificate" -passout:q1w2e3
q1w2e3 — пароль его нужно будет ввести при импорте в браузер.
В упомянутом в предыдущей заметке наборе скриптов от Глеба Пахаренко, все эти операции заавтоматичены.
Теперь собственно сама авторизация.
Ищем в конфиге нашего web-сервера свой https-сайт, проверяем наличие указания на файл корневого сертификата.
Если у Вас apache, то это примерно вот так
SSLCACertificateFile /path/to/ca.crt
В директории, которую нужно защитить авторизацией по сертификату создаем .htaccess со следующим содержанием
SSLVerifyClient require
Пытаемся зайти на страницу, нам откажут. Импортируем сертификат, заходим.
Собственно все.
P.S. В связке nginx+apache22 на сервере с установленной панелью можно перенаправить все запросы на безопасную версию сайта добавив в нужный контейнер server одну строчку примерно вот так
...
server_name domain.ru;
rewrite ^(/.*)$ https://$host$1 permanent;
...
З.З.Ы. В Google Chrome авторизация по сертификатам так и не работает...



Комментариев нет на запись "SSL-сертификат для бедных. Часть 2"
Ваш комментарий может быть первым :) .
Оставить комментарий