Шифрование SQL Server с использованием самозаверяющего SSL-сертификата. Запросы из ASP.NET 3.5 - PullRequest
3 голосов
/ 01 декабря 2009

Я создал самозаверяющий сертификат для проверки шифрования между моим веб-приложением и SQL Server.

При попытке сделать запрос к базе данных, используя "Encrypt = Yes;" в строке подключения я получаю следующее сообщение:

Соединение было успешно установлено с сервером, но затем произошла ошибка во время рукопожатия перед входом в систему. (поставщик: поставщик SSL, ошибка: 0 - цепочка сертификатов была выдана доверенным органом).

Фон
Я получил идентичное сообщение при первой попытке зашифрованного соединения из студии управления. Это было решено путем установки самоподписанного сертификата в мои доверенные центры сертификации.

Вопрос
Есть ли способ заставить ASP.NET доверять сертификату так же, как моя учетная запись пользователя?

Ответы [ 2 ]

3 голосов
/ 02 декабря 2009

OK правильный ответ для этого лежит в добавлении самоподписанного сертификата в хранилище сертификатов.

Неправильный путь
Установка сертификата двойным щелчком по файлу .cer на сервере
- Это добавляет сертификат только для текущего зарегистрированного пользователя, поэтому в некоторых случаях имитация работала.

Правильный путь
Использование CertMgr.exe для установки сертификата.
- Вы можете найти CertMgr.exe в Windows SDK или, очевидно, в папке bin Visual Studio 2005. Это не в VS2008.
- необходимо запустить CertMgr.exe под учетной записью Администратор локального компьютера . Учетная запись домена с правами локального администратора не будет работать
- Запустите CertMgr.exe, чтобы добавить сертификат в хранилища доверенных издателей localmachine, выполнив обе следующие команды:
- certmgr /add Your.Certificate.Filename.cer /s /r localmachine root
- certmgr /add Your.Certificate.Filename.cer /s /r localmachine trustedpublisher

Также обратите внимание, что вы не можете использовать подстановочные знаки при обращении к имени файла сертификата. (/ добавить * .cer не удастся.)

0 голосов
/ 01 декабря 2009

Использование олицетворения работает на моей локальной машине разработки: <identity impersonate="true"/> (в system.web моего web.config)

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

Примечание. Сбой при попытке просмотра сайта на сервере разработки.

...