Устранение оповещения "Издатель не может быть проверен" при переводе внешних списков в автономный режим

Устранение оповещения "Издатель не может быть проверен" при переводе внешних списков в автономный режим

Дата последнего изменения: 29 апреля 2010 г.

Применимо к: SharePoint Server 2010

При переводе в автономный режим внешнего списка Microsoft SharePoint Workspace 2010 или Microsoft Outlook 2010, по умолчанию выдается оповещение, уведомляющее, что издатель не может быть проверен. Это оповещение показано на рисунке 1.

Рис. 1. Оповещение "Издатель не может быть проверен"

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

При переводе внешнего списка в автономный режим SharePoint создает пакет ClickOnce разработки Office в Visual Studio 2010 для клиентского решения. Каждый пакет разработки Office в Visual Studio 2010 должен быть подписан сертификатом Authenticode, указывающим издателя пакета. Пользователь устанавливает пакет на свой клиент с помощью установщика разработки Office в Visual Studio 2010 и проходит через процесс, проверяющий публикацию пакета надежным издателем. По умолчанию SharePoint не имеет сертификата, который может использоваться для подписывания пакета. Поэтому SharePoint создает самозаверяющий сертификат и подписывает пакет с его помощью. Так как это новый самозаверяющий сертификат, клиент не мог доверять прежде ни этому сертификату, ни его поставщику, и поэтому не может проверить издателя пакета. Поэтому установщик разработки Office в Visual Studio 2010 выдает пользователю сообщение о том, что издатель не может быть проверен.

Чтобы предотвратить появление этого оповещения, необходимо предоставить сертификат Authenticode, выпущенный доверенным центром сертификации для подписывания SharePoint пакета ClickOnce разработки Office в Visual Studio 2010. В этом разделе показано, как предоставить сертификат Authenticode для SharePoint. Для выполнения этой задачи необходимы права администрирования для всех интерфейсных веб-серверов фермы. Дополнительные сведения о пакетах ClickOnce разработки Office в Visual Studio 2010 см. в статье, посвященной публикации решений Office. Кроме того, см. статью, посвященную предоставлению доверия для решений Office; дополнительные сведения о предоставлении доверия для приложений ClickOnce см. в статье, посвященной обзору процедуры развертывания доверенного приложения.

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

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

Создание двух сертификатов и их импорт в хранилища сертификатов на ферме интерфейсных веб-серверов

Получите сертификат Authenticode, выпущенный доверенным центром сертификации, например VeriSign. Дополнительные сведения о получении сертификата для подписывания см. в статье, посвященной ClickOnce и Authenticode.

Сертификат должен содержать закрытый ключ шифрования, чтобы он мог использоваться для подписывания. Для данного примера два сертификата, ContosoRoot.cer и ContosoBCS.pfx, были созданы и сохранены с помощью средства создания сертификатов (Makecert.exe). Сертификат, содержащийся в ContosoBCS.pfx, имеет закрытый ключ и используется для подписывания пакета ClickOnce разработки Office в Visual Studio 2010. Сертификат, содержащийся в ContosoRoot.cer, выступает в качестве сертификата центра сертификации и используется для подписывания сертификата, содержащегося в ContosoBCS.pfx. Обратите внимание, что сертификат в ContosoRoot.cer не имеет закрытого ключа.

Создайте хранилище сертификатов с именем BusinessConnectivityServices для Local Computer на каждом интерфейсном веб-сервере фермы.

Хранилище сертификатов BusinessConnectivityServices для локального компьютера — это расположение, в котором SharePoint ищет сертификат, используемый для подписывания пакета ClickOnce разработки Office в Visual Studio 2010. Можно создать хранилище сертификатов, добавив подраздел реестра с именем BusinessConnectivityServices в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates. Или же можно скопировать и вставить следующий текст в текстовый редактор, например в Блокнот, сохранить его как файл REG и дважды щелкнуть этот файл для создания раздела реестра.

Импортируйте сертификат Authenticode ContosoBCS.pfx в хранилища сертификатов для локального компьютера на всех интерфейсных веб-серверах с помощью консоли управления (MMC).

На интерфейсном веб-сервере щелкните Пуск и Выполнить. В диалоговом окне команды Выполнить введите mmc и нажмите клавишу ВВОД.

В консоли управления (MMC) добавьте оснастку сертификатов для локального компьютера в MMC.

Дополнительные сведения о добавлении оснастки сертификатов см. в статье, посвященной просмотру сертификатов с помощью оснастки сертификатов MMC. Убедитесь, что оснастка сертификатов добавлена для локального компьютера, а не для текущего пользователя. Проверьте это, определив, присутствует ли в разделе MMC Корень консоли запись Сертификаты (локальный компьютер). Если оснастка сертификатов добавлена для текущего пользователя, запись будет выглядеть как Сертификаты – текущий пользователь.

В разделе MMC Корень консоли\Сертификаты (локальный компьютер) найдите запись BusinessConnectivityServices, которая была создана на предыдущем шаге при добавлении подраздела реестра. Щелкните эту запись правой кнопкой, щелкните Все задачи и Импорт, как показано на рисунке 2.

Рис. 2. Импорт сертификата

Выполните Мастер импорта сертификатов, чтобы импортировать ContosoBCS.pfx в хранилище сертификатов BusinessConnectivityServices.

Если центра сертификации, выпустившего сертификат для подписывания, еще нет в хранилище сертификатов доверенных корневых центров сертификации для текущего пользователя, перейдите к следующему шагу, чтобы импортировать сертификат для центра сертификации (ContosoRoot.cer). В противном случае пропустите следующий шаг и перейдите к шагу 7.

На клиентском компьютере, где внешний список будет переведен в автономный режим, импортируйте сертификат для центра авторизации, например ContosoRoot.cer, в хранилище сертификатов доверенных корневых центров сертификации для текущего пользователя.

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

Так как в этом примере создается сертификат ContosoRoot.cer, в хранилище клиентского компьютера сертификат отсутствует и его следует импортировать. Сертификат можно импортировать с помощью консоли управления MMC, как показано на рисунке 3. Обратите внимание, что на этом этапе в консоли MMC присутствует оснастка сертификатов для текущего пользователя.

Рис. 3. Импорт сертификата

При переводе внешнего списка в автономный режим происходит одно из следующих событий:

Оповещение не появляется. Если сертификат Authenticode, использованный для подписывания пакета ClickOnce разработки Office в Visual Studio 2010, был импортирован в хранилище сертификатов надежных издателей для текущего пользователя на клиентском компьютере, пакет устанавливается без оповещения.

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

Рис. 4. Сообщение о проверке издателя

Если внешний список переведен в автономный режим до импорта сертификата Authenticode на интерфейсные веб-серверы, может потребоваться удалить старый пакет с сервера, чтобы был создан пакет, подписанный новым сертификатом. Это можно сделать с помощью SharePoint Designer. Например, чтобы удалить старый пакет для внешнего списка "Product List" на сайте http://contoso, можно открыть http://contoso в SharePoint Designer и щелкнуть Все файлы в разделе Объекты сайта в панели навигации, чтобы открыть вкладку Все файлы. На вкладке Все файлы щелкните Списки и Product List. Должна появиться папка с именем ClientSolution. Удалите эту папку, выбрав ее имя и щелкнув Удалить на ленте. Теперь при переводе этого списка в автономный режим оповещение о непроверенном издателе появляться не будет.

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

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

В хранилище сертификатов BusinessConnectivityServices существует несколько сертификатов.

Чтобы исправить эти ошибки, необходимо очистить хранилище сертификатов и импортировать сертификат с закрытым ключом.

Советы по устранению неполадок

Если после импорта сертификата выдается сообщение об ошибке "Не удалось опубликовать решение имя_внешнего_списка, так как набор ключей не существует", убедитесь, что импортированный в хранилище LOCAL_MACHINE\BusinessConnectivityServices сертификат содержит закрытый ключ.

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

Эта команда отображает список учетных записей и групп, имеющих доступ к закрытому ключу.

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

📎📎📎📎📎📎📎📎📎📎