Указано неверное имя файла или указанный файл не содержит сертификатов

Обновлено: 30.06.2024

В следующем списке описаны сообщения об ошибках Grants.gov между системами (S2S). Они возвращаются при сбое веб-служб.

В следующем списке описаны дополнительные сообщения об ошибках Grants.gov S2S для новых веб-служб. Они возвращаются при сбое веб-служб.

Сертификат должен иметь хотя бы одну из необходимых ролей для веб-службы. Дополнительные сведения о необходимых ролях см. в бизнес-правилах для конкретной веб-службы.

Невозможно загрузить файл вложения на Grants.gov, так как он содержит вирус

Файл вложения не может содержать вирусы

Должны быть указаны и файл, и имя файла, если они указаны

Файл и имя файла должны быть указаны, если они указаны (Действие: заменить файл)

Не удается загрузить файл инструкций на Grants.gov, так как он содержит вирус

Файл инструкций не может содержать вирус

Невозможно изменить тип проекта (один проект или несколько проектов) для существующего пакета

Тип проекта (один проект или несколько проектов) изменить нельзя

Минимальное число итераций требуется, если указанная метка группы подприложений не существует.

Минимальное количество итераций должно быть указано, если метка группы подприложения не существует.

Максимум итераций требуется, если указанная метка группы подприложений не существует.

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

Имя шаблона требуется, если указанная метка группы подприложений не существует.

Имя шаблона должно быть указано, если метка группы подприложения не существует.

Ярлык должен начинаться с буквы; содержать только буквы, цифры, пробелы и символы подчеркивания; и не может равняться «XML»

Ярлык должен начинаться с буквы; содержать только буквы, цифры, пробелы и символы подчеркивания; и не может равняться «XML»

Невозможно повторно открыть пакет, так как он содержит устаревшие формы

Пакеты открытых возможностей не могут содержать устаревшие формы

Этот пакет содержит формы UEI; его нельзя обновить для использования указанного шаблона с формами DUNS

Существующие пакеты, содержащие формы UEI, могут указывать только шаблон, содержащий формы UEI, поскольку у новых организаций может не быть номера DUNS в SAM

Эта статья поможет исправить ошибку сертификата ADFS 2.0 при попытке построить цепочку сертификатов.

Применимо к: Windows Server 2012 R2
Исходный номер базы знаний: 3044974

Обзор

Большинство проблем федеративных служб Active Directory (AD FS) 2.0 относятся к одной из следующих основных категорий. Эта статья содержит пошаговые инструкции по устранению неполадок с сертификатами.

Симптомы

Эта проблема возникает после изменения или замены сертификата AD FS.

Программа перестает принимать токен, выданный AD FS.

AD FS возвращает одну из следующих ошибок при получении подписанного запроса или ответа или при попытке зашифровать токен, который должен быть выдан приложению проверяющей стороны:

  • Идентификатор события 316.
    Произошла ошибка при попытке построить цепочку сертификатов для сертификата подписи доверия проверяющей стороны.
  • Идентификатор события 315.
    Произошла ошибка при попытке построить цепочку сертификатов для сертификата подписи доверия поставщика утверждений.
  • Идентификатор события 317.
    Произошла ошибка при попытке создать цепочку сертификатов для сертификата шифрования доверия проверяющей стороны.

В журнале событий AD FS регистрируются следующие идентификаторы событий, связанных с сертификатами:

  • Идентификатор события 133.
    Описание. Во время обработки конфигурации службы федерации было обнаружено, что элемент serviceIdentityToken содержит недопустимые данные. Не удалось получить доступ к закрытому ключу настроенного сертификата. Ниже приведены значения сертификата: Элемент: serviceIdentityToken
  • Идентификатор события 385.
    AD FS 2.0 обнаружила, что один или несколько сертификатов в базе данных конфигурации AD FS 2.0 необходимо обновить вручную.
  • Идентификатор события 381.
    Произошла ошибка при попытке построить цепочку сертификатов для сертификата конфигурации.
  • Идентификатор события 102.
    Произошла ошибка при включении конечных точек службы федерации.
    Дополнительные данные
    Сведения об исключении:
    System.ArgumentNullException: значение не может быть нулевым.
    Имя параметра: сертификат
  • Идентификатор события: 387.
    AD FS 2.0 обнаружила, что один или несколько сертификатов, указанных в службе федерации, недоступны для учетной записи службы, используемой службой AD FS 2.0 Windows.
    Действие пользователя: Убедитесь, что учетная запись службы AD FS имеет разрешения на чтение закрытых ключей сертификата.
    Дополнительные сведения:
    Сертификат для подписи токена с отпечатком "xxxxxxxx"

Разрешение

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

Шаг 1. Проверьте закрытые ключи

Проверьте, все ли сертификаты AD FS (связь со службами, расшифровка маркеров и подпись маркеров) действительны и имеют связанный с ними закрытый ключ. Кроме того, убедитесь, что срок действия сертификата истек.

Скриншот окна сертификата, показывающий срок действия.

Где найти сертификаты

Для сертификатов связи службы:

На сервере AD FS нажмите "Пуск", выберите "Выполнить", введите MMC.exe и нажмите клавишу ВВОД.

В диалоговом окне "Добавить/удалить оснастку" нажмите "ОК".

На экране оснастки "Сертификаты" щелкните хранилище сертификатов учетной записи компьютера.

Снимок экрана окна оснастки

Чтобы просмотреть свойства сертификата Service Communications, разверните Сертификат (локальный компьютер), разверните Личный и нажмите Сертификаты.

Для сертификатов для подписи токена и расшифровки токена:

  • Если сертификаты являются самозаверяющими и добавляются сервером ADFS по умолчанию, войдите в систему на сервере ADFS в интерактивном режиме с помощью учетной записи службы ADFS и проверьте хранилище сертификатов пользователя (certmgr.msc).
  • Если сертификат получен от центра сертификации (ЦС), настроенного администраторами ADFS после отключения AutoCertificateRollover, вы сможете найти его в хранилище сертификатов сервера ADFS.

Шаг 2. Убедитесь, что сертификаты не используют закрытый ключ Cryptographic Next Generation (CNG)

Сертификаты, использующие закрытый ключ CNG, не поддерживаются для подписи токена и расшифровки токена. Если AD FS сгенерировал самозаверяющий сертификат, этот сертификат не использует CNG. Для сертификата, выданного ЦС, убедитесь, что сертификат не основан на CNG. Для этого выполните следующие действия. Если шаблон ЦС использует любого из перечисленных поставщиков служб шифрования, сертификат, выданный этим ЦС, не поддерживается сервером AD FS.

Шаг 3. Проверьте, привязана ли SSL-привязка сертификатов связи службы в IIS к порту 443

Как проверить и исправить

Запустите диспетчер IIS. Для этого нажмите «Пуск», выберите «Администрирование», а затем — «Диспетчер информационных служб Интернета (IIS)».

Нажмите на имя сервера, а затем разверните папку "Сайты".

Найдите свой веб-сайт (обычно он называется "Веб-сайт по умолчанию"), а затем выберите его.

Скриншот окна

Шаг 4. Убедитесь, что сертификат связи службы действителен, доверен и прошел проверку отзыва

Как проверить

Откройте Управление AD FS 2.0.

Разверните узел "Сервис", нажмите "Сертификат", щелкните правой кнопкой мыши сертификат связи службы и выберите "Просмотреть сертификат".

В области сведений нажмите Копировать в файл и сохраните файл как Filename.cer.

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

Откройте выходной файл, созданный поверх "cert_verification.txt".

Перейдите к концу файла и проверьте, содержит ли он следующее для успешной проверки отзыва:

Проверка отзыва конечного сертификата пройдена
CertUtil: команда -verify выполнена успешно.

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

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

Сбор трассировки сети может помочь, если какой-либо путь AIA, CDP или OCSP недоступен.

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

Шаг 5. Убедитесь, что учетные записи службы ADFS имеют разрешение на чтение закрытого ключа сертификатов ADFS

Как проверить разрешение на чтение

На сервере AD FS нажмите «Пуск», выберите «Выполнить», введите MMC.exe и нажмите клавишу «Ввод».

В диалоговом окне "Добавить/удалить оснастку" нажмите "ОК".

В корневом окне консоли щелкните Сертификаты (локальный компьютер), чтобы просмотреть хранилища сертификатов компьютеров.

Щелкните правой кнопкой мыши службу AD FS, выберите Все задачи, а затем нажмите Управление закрытыми ключами.

Проверьте, есть ли у учетной записи AD FS разрешение на чтение.

Снимок экрана окна разрешений, показывающий, что учетная запись AD FS имеет разрешение на чтение.

Шаг 6. Проверьте, включена ли функция ADFS AutoCertificateRollover для сертификатов, подписывающих и расшифровывающих токены

Как проверить функцию ADFS AutoCertificateRollover

  • Если AutoCertificateRollover отключен, сертификаты для подписи токена и расшифровки токена не будут обновляться автоматически. Прежде чем истечет срок действия этих сертификатов, убедитесь, что новый сертификат добавлен в конфигурацию AD FS. В противном случае проверяющая сторона не будет доверять маркеру, выданному сервером AD FS.
  • Если AutoCertificateRollover включен, новые сертификаты для подписи и расшифровки маркеров будут созданы за 20 дней до истечения срока действия старых сертификатов. Новые сертификаты получат статус Первичных через пять дней после создания. После создания нового набора сертификатов убедитесь, что одна и та же информация обновлена ​​в доверительных отношениях проверяющей стороны и поставщика утверждений.

Дополнительные сведения о функции AutoCertificateRollover AD FS см. в следующих разделах TechNet:

Шаг 7. Добавьте имя службы федерации в SAN сертификата

Если в сертификате включен атрибут SAN (альтернативное имя субъекта), имя службы федерации также должно быть добавлено в SAN сертификата вместе с другими именами. Дополнительные сведения см. в разделе Требования к сертификату SSL.

Шаг 8. Проверьте разрешения учетной записи службы для контейнера совместного использования сертификатов (CN= ,CN=ADFS,CN=Microsoft,CN=Program Data,DC= ,DC= )

Как проверить и исправить разрешение сервисного аккаунта

На контроллере домена (DC) откройте Adsiedit.msc.

Подключиться к контексту именования по умолчанию.

Найдите CN= ,CN=ADFS,CN=Microsoft,CN=Program Data,DC= ,DC= .

В этом имени контейнера параметры в скобках представляют фактические значения. Пример GUID: "62b8a5cb-5d16-4b13-b616-06caea706ada".

Щелкните правой кнопкой мыши идентификатор GUID и выберите пункт Свойства. Если GUID несколько, выполните следующие действия:

Запустите Windows PowerShell на сервере, на котором запущена служба AD FS.

Выполните следующую команду:

Найдите GUID запущенной службы AD FS в CertificateShareingContainer.

Убедитесь, что учетная запись службы ADFS имеет разрешения на чтение, запись и создание всех дочерних объектов, предоставленные этому объекту и всем дочерним объектам.

Шаг 9. Проверьте поставщиков утверждений и проверяющих сторон на наличие обновлений сертификатов

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

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

Шаг 10. Проверьте наличие подписанного запроса и ответа от поставщика утверждений или проверяющей стороны

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

Сценарии

AD FS 2.0 получает подписанный запрос SAML-P, отправленный проверяющей стороной.

Требование подписи запросов на вход — это настраиваемый параметр. Чтобы задать это требование для доверия с проверяющей стороной, используйте параметр RequireSignedSamlRequests вместе с командлетом Set-ADFSRelyingPartyTrust.

AD FS 2.0 получает подписанный запрос на выход SAML от проверяющей стороны. В этом случае запрос на выход должен быть подписан.

AD FS 2.0 получает запрос на выход от поставщика утверждений и шифрует запрос на выход для проверяющей стороны. В этом случае поставщик утверждений инициирует выход.

AD FS 2.0 выдает зашифрованный токен для проверяющей стороны.

Фондовая служба AD 2.0 получает выданный токен от поставщика утверждений.

AD FS 2.0 получает подписанный запрос на выход SAML от поставщика утверждений. В этом случае запрос на выход должен быть подписан.

Что нужно проверить, чтобы решить проблему

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

Убедитесь, что AD FS 2.0 может получить доступ к списку отзыва сертификатов, если в настройках отзыва не указано "нет" или "только кэш".

Вы можете использовать командлеты Windows PowerShell для AD FS 2.0, чтобы настроить следующие параметры отзыва:

Читайте также: