Публичный сертификат и разрешения X509 - PullRequest
0 голосов
/ 03 декабря 2008

У меня проблема с загрузкой определенного сертификата X509 в приложение ASP.NET (то есть не через IIS для https). Я загрузил его в свои «Личные» и «Надежные корневые» хранилища на локальном компьютере (через оснастку MMC), но не могу загрузить его ни из одного хранилища.

Кажется, что учетная запись NETWORK SERVICE не имеет прав на чтение / загрузку, потому что когда я изменяю удостоверение пулов приложений на пользователя с правами администратора, я могу найти, загрузить и использовать сертификат.

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

Странно, потому что у меня не было этой проблемы с публичными сертификатами в этом приложении ранее. Единственное отличие, которое я вижу в этом публичном сертификате и предыдущих публичных сертификатах (которые были загружены в порядке штрафа), заключается в том, что этот конкретный публичный сертификат был подписан Verisign и поэтому имеет цепочку сертификации с парой других сертификатов Verisign.

Заранее спасибо,
Charles

К вашему сведению, моя среда разработки - это просто мой компьютер Vista Business с IIS7.

Ответы [ 2 ]

1 голос
/ 03 декабря 2008

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

В качестве альтернативы, вы можете посмотреть с помощью FileMon или ProcMon и проверить наличие отказа в доступе для NETWORK SERVICE. На этой странице MSDN перечислены местоположения магазинов на диске .

По-прежнему остается расплывчатым ответом, но, надеюсь, это в конечном итоге приведет к решению ...

0 голосов
/ 31 декабря 2008

Пара разных мыслей. Меня немного смущает то, как вы используете термин «сертификат с закрытым ключом» и что вы подразумеваете под «использовать сертификат» после того, как вы попытались получить к нему доступ с правами администратора. Я предполагаю, что вы пытаетесь сделать одно из следующего:

  • получите копию сертификата и сделайте что-то вроде подтверждения или используйте его для шифрования.

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

Итак ... если это # ​​1 , моя первая ставка в том, что настройки сертификата испортили что-то в протоколах ASP.NET. Verisign настроил бы профиль, используемый для генерации и подписи сертификата особым образом. Это даст параметры сертификата, которые вы не можете изменить, которые могут помешать загрузке сертификата. Я бы проверил сертификат, который дает вам проблемы, с сертификатами, у которых нет проблем, и посмотрел бы, как меняются расширения в сертификатах. Вы можете сделать это через панель предварительного просмотра сертификата IE в клиенте. Проверьте любые другие параметры, которые вы найдете в Интернете - обычно публикуются отчеты о проблемах интеграции Microsoft.

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

Если это # ​​2 - возможно, вы сделали закрытый ключ для сертификата неэкспортируемым. Я предполагаю, что вы используете сертификат программного обеспечения и загрузили PKCS12 или другой файл хранилища сертификатов в браузер. В то время он бы спросил, хотите ли вы иметь возможность экспортировать закрытый ключ. Если вы сказали «нет» (оставив флажок снятым), закрытый ключ не покинет браузер.

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

...