Это зависит. Сертификаты X.509v3 обычно поставляются с полем расширения «Расширенное использование ключа», которое содержит список разрешенных вариантов использования (EKU).
Обычные сертификаты веб- сервера содержат использование «TLS Server Authentication» (иногда отображается как «TLS Web Server», но на самом деле оно вообще не относится к Web).
Чтобы действовать в качестве клиента, вам необходим сертификат с «Аутентификацией клиента TLS» (опять же часто обозначаемый как «Веб-клиент TLS», несмотря на то, что в нем нет ничего специфичного для сети).
Обычные SSL-сертификаты «веб-сервера» довольно часто содержат оба варианта использования - например, я смотрю сертификаты, выданные Let's Encrypt и DigiCert, и все они содержат оба варианта, поэтому могут использоваться для клиентской / взаимной аутентификации. ,
Однако возможно, что в некоторых других центрах сертификации, особенно в центрах сертификации частных организаций, большинство сертификатов имеют одно или другое использование, но редко оба.
Например, OpenVPN раньше строго требовал « только TLS-клиента» (а не « хотя бы TLS-клиента», как это делают другие программы), поэтому его easy-rsa
скрипт выдает сертификаты только для сервера и только для клиента, но не смешанный тип.
Поэтому вы должны проверить свои сертификаты и убедиться, что они содержат требуемый EKU. Практически любой инструмент сертификата будет делать эту работу - например, свойство сертификата диалогового окна в Windows, покажет это под «V3 расширениями», как будет веб - браузеры, openssl x509
, certtool
, certutil
и т.д.
Также стоит помнить, если вы используете свой собственный внутренний CA: если вы используете промежуточный сертификат CA, обратите на него внимание. Полупродукты не обязаны иметь расширение EKU, но если они делают есть, то все сертификаты, выданные что промежуточным ограничены этим. (Если вы получаете сертификаты на коммерческой основе, не нужно беспокоиться об этом.)
Кроме того, сертификат будет иметь основное поле «Использование ключа», которое содержит некоторые очень общие ограничения: например, «Цифровая подпись» означает, что сертификату разрешено подписывать данные (и, следовательно, допускается рукопожатие EDH / EECDH в TLS); «Соглашение о ключах», по-видимому, предназначено для статического DH / ECDH; «Ключ шифрования» позволяет рукопожатия статического RSA.
Официальная документация X.509v3 очень сбивает с толку из-за необходимости использования, когда ... Коммерческие ЦС обычно понимают это поле правильно. Но для частных ЦС это стоит перепроверить.