Доступ (авторизация) к сайту по клиентским сертификатам.

Вы сейчас просматриваете Доступ (авторизация) к сайту по клиентским сертификатам.

Авторизация с использованием клиентских сертификатов является одним из методов обеспечения безопасности доступа к сайту. При таком способе аутентификации, пользователь предоставляет не только логин и пароль, но и электронный сертификат, подтверждающий его личность. Это повышает уровень защиты информации и предотвращает несанкционированный доступ к ресурсу. Клиентские сертификаты могут использоваться как для входа на сайт, так и для подписи документов или проведения сделок онлайн.

Создадим каталог, в котором будем проводить работы по выпуску и хранению необходимых сертификатов:

# mkdir /etc/ssl/atest

Перейдем в наш каталог:

# cd /etc/ssl/atest

Генерируем ключ для корневого сертификата сервера:

# openssl genrsa -out root.key 2048

Генерируем запрос для сертификата сервера:

# openssl req -new -key root.key -out root.csr

Теперь сформируем корневой сертификат сервера. Его мы будем использовать в дальнейшем для подписи клиентских сертификатов, при помощи которых у нас будет происходить авторизация на сайте.

# openssl x509 -req -days 3650 -in root.csr -signkey root.key -out root.pem

Сгенерируем ключ для самоподписного сертификат для нашего сайта. Его мы будем использовать для настройки SSL. В нашем примере, в качестве веб-сервера выступит Apache.

# openssl genrsa -out server.key 2048

Генеруем запрос для самоподписного сертификата сайта:

# openssl req -new -key server.key -out server.csr

Теперь подпишем сертификат сайта нашим ключом сервера  и получим цепочку сертификатов для сайта:

# openssl x509 -req -in server.csr -CA root.pem -CAkey root.key -CAcreateserial -out server.pem -days 365

Приступим к выпуску сертификатов для авторизации со стороны клиента:

[root@adminapi ppp.com]# openssl genrsa -out client1.key 2048

[root@adminapi ppp.com]# openssl req -new -key client1.key -out client1.csr

[root@adminapi ppp.com]# openssl x509 -req -in client1.csr -CA root.pem -CAkey root.key -CAcreateserial -out client1.pem -days 365

Подготовим наш сертификат для экспорта в браузер клиентов:

[root@adminapi ppp.com]# openssl pkcs12 -export -in client1.pem -inkey client1.key -certfile root.pem -out atest_crt1.p12

Скачиваем себе наш полученный файл для импорта и авторизации браузер с сервера atest_crt1.p12

Для настройки вер-сервера Apache по сертификатам указываем пути к нашим самоподписным сертификатам, а также к нашему корневому сертификату, которым мы подписывали наши ключи клиентов:

SSLCertificateFile /etc/ssl/atest/server.pem

SSLCertificateKeyFile /etc/ssl/atest/server.key

SSLCACertificateFile   /etc/ssl/atest/root.pem

В нашем примере нам необходимо ограничить доступ к каталогу administrator для этого используем параметр:

SSLVerifyClient require

В результате наш конфиг может иметь примерно такое содержание:

<VirtualHost *:443>

ServerName atest.site

DocumentRoot "/var/www/atest"

ErrorLog logs/error.log

TransferLog logs/access.log

LogLevel warn

SSLEngine on

SSLCertificateFile /etc/ssl/atest/server.pem

SSLCertificateKeyFile /etc/ssl/atest/server.key

SSLCACertificateFile   /etc/ssl/atest/root.pem

<Location />

</Location>

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

    SSLOptions +StdEnvVars

</Files>

<Directory "/var/www/atest/administrator">

    SSLRenegBufferSize 10486000

    SSLVerifyClient require

</Directory>

</VirtualHost>

Таким образом, использование клиентских сертификатов для авторизации на сайте обеспечивает дополнительный уровень безопасности, защищая данные пользователей от несанкционированного доступа. Это удобный и надежный способ идентификации пользователей и обеспечения конфиденциальности персональной информации. Внедрение такой системы авторизации помогает защитить как сам сайт, так и его пользователей от потенциальных угроз и атак.

Понравилась статья? Хочешь получать еще больше полезного контента? Подписывайся на наш блог, будь в курсе последних новостей и интересных материалов из области хостинга и не только!