Главная/Установка/Клиентский сертификат
Клиентский сертификат: что такое mTLS и как его настроить
Клиентский сертификат это файл, по которому сервер узнаёт подключающегося человека или программу: как пароль, только проверяется на уровне TLS. Когда сертификаты предъявляют обе стороны, и сервер, и клиент, соединение называют mTLS (взаимный TLS). Такие сертификаты выпускают собственным центром сертификации, а не публичным.
Ответ за 30 секунд
Клиентский сертификат нужен, чтобы сервер проверял и клиента: им закрывают админки, партнёрские API и связь сервисов. Выпускать такие сертификаты лучше своим центром сертификации: Let's Encrypt с 8 июля 2026 их больше не выдаёт.
Клиентские сертификаты выпускает ваш центр, а серверный на домен бесплатный у Let's Encrypt, платные от 1 000 ₽ за 6 месяцев (Таймвеб, на 19 октября 2026).
Когда нужен клиентский сертификат, а когда хватит пароляmTLSсервер и клиент проверяют друг друга
clientAuthназначение клиентского сертификата
8 июля 2026Let's Encrypt прекратил выдачу clientAuth
01 · 1 мин
Что такое клиентский сертификат и чем он отличается от серверного#
Обычный сертификат сайта доказывает клиенту, что сервер настоящий. Клиентский работает в обратную сторону: сервер просит у подключившегося сертификат, а тот подтверждает владение закрытым ключом. Порядок обмена описан в разделе про рукопожатие TLS.
| Серверный сертификат | Клиентский сертификат | |
|---|---|---|
| Кого подтверждает | Сайт или сервер | Человека, устройство или сервис |
| Кто проверяет | Браузер или программа | Сервер |
| Кто выпускает | Публичный центр, например Let's Encrypt | Ваш центр сертификации |
| Назначение в сертификате | serverAuth | clientAuth |
Не путайте его с сертификатом электронной подписи: тот подписывает документы, а клиентский подтверждает подключение к серверу.
Инструмент · 1 мин
Когда нужен клиентский сертификат, а когда хватит пароля#
Применяют там, где круг подключающихся известен заранее: панели управления и внутренние сайты, API для партнёров и банков, связь между сервисами внутри системы, корпоративный Wi-Fi с проверкой устройств (EAP-TLS). Преимущество перед паролем: ключ не вводят руками и он не уходит на сервер, поэтому его не подобрать и труднее выманить фишинговой страницей.
Для публичного сайта и магазина клиентский сертификат не нужен: покупатели не будут его устанавливать.
Нужен ли вам клиентский сертификат
Два ответа, и подсказка скажет, подходит ли mTLS
03 · 1 мин
Как выпустить клиентский сертификат своим центром сертификации#
Нужны три шага: создать центр сертификации, сделать ключ и запрос клиента, подписать запрос с назначением clientAuth. Устройство запроса описано в разделе про CSR, а общий принцип в разделе про центр сертификации.
# 1. Свой центр сертификации: ключ ca.key храните только у себя
openssl req -x509 -newkey rsa:4096 -nodes -sha256 -days 1825 \
-keyout ca.key -out ca.crt -subj "/CN=Example Client CA"
# 2. Ключ и запрос клиента
openssl req -newkey rsa:2048 -nodes -keyout client.key \
-out client.csr -subj "/CN=service-billing"
# 3. Подпись запроса с назначением clientAuth
printf "extendedKeyUsage=clientAuth\n" > client.ext
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -days 365 -sha256 -extfile client.ext -out client.crt
# 4. Файл .p12 для установки в браузер или систему
openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12
Файл .p12 содержит ключ, поэтому передавайте его защищённым способом и задайте пароль. Форматы сертификатов и ключей: pem, crt, key, pfx.
04 · 1 мин
Как включить проверку клиентского сертификата в Nginx#
Серверный сертификат остаётся обычным, например от Let's Encrypt: браузеры должны ему доверять. Клиентские проверяются отдельно, по файлу вашего центра сертификации.
server {
listen 443 ssl;
server_name admin.example.com;
ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;
ssl_client_certificate /etc/nginx/client-ca.crt;
ssl_verify_client on;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Client-DN $ssl_client_s_dn;
}
}
Файл client-ca.crt это ca.crt из предыдущего шага. Проверка с сертификатом и без него:
curl --cert client.crt --key client.key https://admin.example.com/
curl https://admin.example.com/
Второй запрос получит ответ 400 с текстом об отсутствии нужного сертификата. В Apache те же задачи решают директивы SSLVerifyClient require и SSLCACertificateFile. Для отзыва сертификатов в Nginx есть директива ssl_crl со списком отозванных. Общая настройка сервера: сертификат в Nginx.
05 · 1 мин
Вопросы о клиентском сертификате#
Чем клиентский сертификат отличается от серверного SSL-сертификата?
Серверный доказывает клиенту, что сайт настоящий, и выдаётся публичным центром. Клиентский подтверждает личность подключающегося перед сервером и выпускается вашим центром сертификации с назначением clientAuth.
Можно ли получить клиентский сертификат у Let's Encrypt?
Нет. Let's Encrypt прекратил выдачу сертификатов с назначением clientAuth: профиль для них закрыт 8 июля 2026 года. Центр советует для проверки клиентов использовать собственный центр сертификации.
Как установить клиентский сертификат в браузер?
Откройте файл .p12 или .pfx и импортируйте в хранилище «Личное»: Chrome и Edge на Windows берут сертификаты из системы. В Firefox импорт делают в настройках, в разделе «Ваши сертификаты».
Что такое mTLS простыми словами?
Это TLS, в котором паспорта предъявляют оба: сервер показывает свой сертификат клиенту, а клиент свой серверу. Без сертификата клиента сервер отвечает отказом.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: SSL-сертификаты Таймвеб, timeweb.com/ru/services/domains/ssl, проверено 19 октября 2026; Let's Encrypt: документация, letsencrypt.org/docs, проверено 19 октября 2026; Let's Encrypt: прекращение выдачи сертификатов с TLS Client Authentication, letsencrypt.org/2025/05/14/ending-tls-client-authentication, проверено 19 октября 2026.
Подключите SSL к сайту
От бесплатного Let's Encrypt до платных сертификатов GlobalSign с гарантийной выплатой и установкой под ключ. Любой можно вернуть за 7 дней.
- Бесплатный Let's Encrypt на домен
- Платные от 1 000 ₽ за 6 месяцев
- Wildcard на все поддомены
- 7 дней на возврат