SSL-сертификат для бедных. Часть 2

Дата: 5.12.2008

Рубрики: Technology, Интернет

В первой части статьи были рассмотрены создание собственного центра сертификации и выпуск сертификата для нашего Web-сервера.

Один из читателей так же предложил не париться с созданием, а выпустить себе бесплатный сертификат.

Без сомнения предложенный Xelon'ом бесплатный сертификат от Comodo избавляет посетителей сайта от необходимости совершать дополнительные телодвижения по установке корневого сертификата в браузер, однако сегодня мы рассмотрим пример авторизации пользователей в защищенной зоне сайта с использованием клиентского сертификата. Создавать свой 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 на сервере с установленной панелью ISPmanager можно перенаправить все запросы на безопасную версию сайта добавив в нужный контейнер server одну строчку примерно вот так

...
server_name domain.ru;
rewrite ^(/.*)$ https://$host$1 permanent;
... 

З.З.Ы. В Google Chrome авторизация по сертификатам так и не работает...

Связанные записи

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

Ваш комментарий может быть первым :) .

Оставить комментарий

Имя:
E-mail:
Сайт: