Самостоятельный хостинг с использованием SSL и WCF - невозможно привязать сертификат к порту - PullRequest
4 голосов
/ 03 июня 2011

У меня есть служба WCF, к которой я хочу получить доступ по протоколу SSL.Я нахожусь на своей машине разработчика, поэтому я думал о самостоятельном размещении сервиса.Я следил за Настройка HTTP и HTTPS .

Я создал самозаверяющий сертификат, который я добавил в Доверенные корневые центры сертификации .Я создал еще два сертификата, подписанных первым, один для клиента и другой для сервера.Я следовал Использование makecert для создания сертификатов для разработки .

Я не могу пройти этап настройки SSL-сертификатов.Когда я привязываю сертификат к номеру порта с помощью netsh , он выдает ошибку SSL:

Ошибка добавления сертификата, ошибка: 1312 Указанный сеанс входа не существует.Возможно, оно уже было прекращено.

Требуется ли для сертификата какое-либо специальное поле или что-то еще для его работы?

CA сертификат:

makecert -n "CN=TestCA" -cy authority -a sha1 -sv "TestCA.pvk" -r "TEST_CA.cer"

Сертификат службы:

makecert -n "CN=rneapp.com" -ic "TEST_CA.cer"  -iv "TestCA.pvk" -a sha1 -sky exchange -pe -sv "rneapp.com.pvk" "rneapp.com.cer"

Сертификат клиента:

makecert -n "CN=rneClient" -ic "TEST_CA.cer"  -iv "TestCA.pvk" -a sha1 -sky exchange -pe -sv "rneClient.pvk" "rneClient.cer"

Я использую эту команду для привязки сертификата к порту:

netsh http add sslcert ipport=0.0.0.0:8465 certhash=a853f3b5b48b8a506bdc4212ba2726a3bfea2bb6 appid={2E53B9B0-17AE-4EBC-A1AE-43D53A6FD07D} clientcertnegotiation=enable

Ответы [ 5 ]

6 голосов
/ 19 апреля 2012

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

Встроенная справка для netsh http add sslcert также упоминает это относительно certstorename опция:

        certstorename           - Store name for the certificate. Defaults
                                  to MY. Certificate must be stored in the
                                  local machine context.
1 голос
/ 06 июня 2013

У меня точно такая же проблема в Windows 7 и Windows Server 2008 R2, но у меня это работает, когда я впервые связываю сертификат с портом. Однако, если я удаляю привязку (netsh.exe http delete sslcert ipport = 0.0.0.0: 9101) и повторяю привязку с тем же сертификатом, происходит сбой. Если я попробую другой порт, он потерпит неудачу. Если я создаю новый сертификат, я могу связываться снова. Но снова удаление / привязка завершится неудачей.

Я следую тем же правилам, что и этот вопрос: Невозможно зарегистрировать сгенерированный C # самоподписанный сертификат SSL с помощью netsh (ошибка 1312)

Я также пытался установить KB981506 http://support.microsoft.com/kb/981506, но не удалось установить «Обновление не применимо к вашему компьютеру». Может быть, у меня уже есть.

У меня такое ощущение, что при удалении привязки что-то неправильно удаляется. ProcessMonitor не показывает ничего странного, когда я пытаюсь связать снова.

1 голос
/ 10 марта 2012

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

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

0 голосов
/ 12 января 2014

У меня была похожая проблема сегодня, и вот как я ее исправил. Когда я посмотрел сертификаты, установленные на моем локальном компьютере / моем в mmc.exe, я увидел, что у моего сертификата нет значка с ключом.

Поэтому, когда я объединяю * .cer и * .pvk файл в * .pfx с:

pvk2pfx -pvk "private_key.pvk"  -spc "public.cert" -pfx "test.pfx"

А затем импортируйте файл * .pfx с помощью mmc.exe.

Тогда следующие команды будут выполнены без ошибок:

netsh http add sslcert...
netsh http delete sslcert...

Я отправил этот ответ на аналогичный вопрос переполнения стека, Не удается зарегистрировать сгенерированный C # самоподписанный сертификат SSL с помощью netsh (ошибка 1312) .

0 голосов
/ 03 июня 2011

Это похоже на известную проблему. Ознакомьтесь с этой статьей Microsoft KB .

Возможно, вы также неправильно настраиваете сертификаты. Ознакомьтесь с этим сообщением на форуме MSDN , чтобы узнать, как другой человек совершал подобную ошибку и получал ошибку 1312, которая просто отвлекала его от реальной проблемы, которая заключалась в конфигурации его сертификата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...