EPP для регистрации домена не удается при использовании сертификата - PullRequest
0 голосов
/ 30 мая 2019

Я использую EPP (Extensible Provisioning Protocol) для выполнения операций регистрации домена.

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

Допустим, у меня есть сертификат в C:\Folder\epp.crt с использованием следующего кода:

var tcpTransport = new TcpTransport(url, port, new X509Certificate("C:\Folder\epp.crt"), true);
var service = new Service(tcpTransport);
service.Connect();

Этот код выполняется просто отлично, и служба подключена. Это означает, что соединение с URL устанавливается с помощью сертификата. Сейчас я пытаюсь войти с помощью:

service.Execute(logingCmd);

Но это дает мне сообщение «Сервер требует проверки сертификата клиента, сертификат клиента не предоставляется».

Почему? Должен ли быть какой-либо флаг для сертификата в команде входа в систему?

1 Ответ

1 голос
/ 02 июня 2019

Per RFC5734 , EPP использует TLS, а не TCP. Этот RFC также требует использования клиентских сертификатов.

В вашем вопросе отсутствуют сведения о содержимом epp.crt (где находится связанный ключ?) Или используемом вами языке. Согласование TLS, включая проверку сертификата клиента, происходит до входа в систему EPP, но точный момент может быть скрыт библиотекой, которую вы используете для подключения.

Итак, чтобы ответить на ваш вопрос «Должен ли быть какой-либо флаг для сертификата в команде входа в систему?», Нет, не должен, поскольку обработка сертификата является частью настройки транспорта, а не командами EPP. Ваша проблема, вероятно, больше связана с использованием TcpTransport.

Вы можете использовать сетевой сниффер, чтобы точно узнать, что происходит. Реестры, вероятно, пока не предлагают TLS1.3, поэтому вы все равно должны видеть биржи TLS, в том числе ваш клиент, предоставляющий сертификат.

Также вам может помочь реестр, к которому вы подключаетесь.

...