2014-10-01 15 views
0

Я подключение к серверу и после удостоверяются как клиентЗакрытый ключ сертификата

sslStream = new SslStream(_serverStream, false, SslCertificateValidatorCallback); 
sslStream.AuthenticateAsClient(host); 

Я хочу использовать полученый сертификат в качестве сервера. Является ли это возможным? Для этого мне нужен секретный ключ, но у этого сертификата его нет.

Итак, мои вопросы: 1. Если у меня есть сертификат с открытым ключом, могу ли я добавить закрытый ключ к этому сертификату? 2. Могу ли я создать новый сертификат на основе полученного и открытого ключа?

Любые идеи будут очень полезны для меня.

Благодаря

ответ

0

я предлагаю делать некоторые исследования на сертификат шифрования/асимметричного шифрования, как ваш вопрос демонстрирует отсутствие понимания в этой области. Не пытаясь быть грубым, просто говорю.

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

Короче:

  1. сервер привязан к порту и обладать сертификат, открытый/закрытый пары ключ
  2. запрос сделан к серверу
  3. клиент использует сертификат для проверки идентификация сервера
  4. Если действительные связи продолжают
  5. Открытый ключ используется для шифрования трафика на сервер
  6. Сервер использует свой закрытый ключ для дешифрования трафика

Следует отметить, что сертификат обычно используется только для обмена симметричным ключом (симметричное шифрование выполняется быстрее). Поэтому, после проверки сертификата, происходит обмен ключами, и связь возобновляется с использованием симметричного ключа шифрования.

Here is an article to get you started And here

Чтобы ответить на ваши вопросы конкретно: 1. Нет 2. Можно «пародии», что сертификат - однако, это было бы непослушным, и большинство (хорошо) клиенты будут ловить на и предотвращения дальнейшего движения трафика

Смежные вопросы