Замена сертификата STS для SharePoint Server
ОБЛАСТЬ ПРИМЕНЕНИЯ:2013
2016
2019
Subscription Edition
SharePoint в Microsoft 365
В этом разделе содержатся сведения о замене сертификата службы маркеров безопасности SharePoint (STS) в ферме SharePoint.
Требования к Сертификатам
Приобретите сертификат в доверенном центре сертификации, создайте новый сертификат из локальной инфраструктуры PKI (например, службы сертификатов Active Directory) или создайте самозаверяющий сертификат (созданный с помощью certreq.exe
или New-SelfSignedCertificate
). Сертификат должен использовать 2048-разрядное шифрование или более поздней версии.
Чтобы заменить сертификат STS, потребуется открытый сертификат (CER) и открытый с сертификатом закрытого ключа (PFX) и понятное имя сертификата.
Сертификат следует заменить во время периода обслуживания, так как служба таймера SharePoint (SPTimerV4) должна быть перезапущена.
В качестве общедоступных сертификатов и по умолчанию срок действия частных сертификатов истекает в течение 1–3 лет в зависимости от указанного срока действия, эта процедура должна выполняться, когда сертификат требует продления.
Примечание.
Сертификат службы безопасности по умолчанию обновлять не требуется. Продление применяется только после замены сертификата STS.
Создание сертификата Self-Signed
Чтобы создать самозаверяющий сертификат, выберите метод создания и выполните следующие действия.
Совет
Для общих имен и DNS-имени можно задать любое значение.
Примечание.
Закрытые ключи и пароли сертификатов являются конфиденциальными. Используйте надежный пароль и безопасно сохраните PFX-файл.
New-SelfSignedCertificate
New-SelfSignedCertificate -DnsName 'sts.contoso.com' -KeyLength 2048 -FriendlyName 'SharePoint STS Certificate' -CertStoreLocation 'cert:\LocalMachine\My' -KeySpec KeyExchange
$password = ConvertTo-SecureString "P@ssw0rd1!" -Force -AsPlainText
$cert = Get-ChildItem "cert:\localmachine\my" | ?{$_.Subject -eq "CN=sts.contoso.com"}
Export-PfxCertificate -Cert $cert -Password $password -FilePath C:\sts.pfx
Export-Certificate -Cert $cert -Type CERT -FilePath C:\sts.cer
В этом примере создается новый сертификат с DNS-именем "sts.contoso.com" и общим именем "CN=sts.contoso.com". Общее имя автоматически задается командлетом New-SelfSignedCertificate
. Используя безопасный пароль, мы экспортируем PFX (sts.pfx) и общедоступный сертификат (sts.cer).
Certreq
Создайте файл request.inf для сертификата. Измените тему по мере необходимости из приведенного ниже примера.
[Version]
Signature="$Windows NT$
[NewRequest]
FriendlyName = "SharePoint STS Certificate"
Subject = "CN=sts.contoso.com"
KeyLength = 2048
KeyAlgorithm = RSA
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DIGITAL_SIGNATURE_KEY_USAGE"
KeySpec = "AT_KEYEXCHANGE"
MachineKeySet = true
RequestType = Cert
ExportableEncrypted = true
[Strings]
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1"
szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2"
[Extensions]
%szOID_ENHANCED_KEY_USAGE%="{text}%szOID_PKIX_KP_SERVER_AUTH%,"
_continue_ = "%szOID_PKIX_KP_CLIENT_AUTH%"
В командной строке с повышенными привилегиями выполните следующую команду, чтобы создать и установить сертификат в локальном хранилище компьютера. После установки сертификата появится диалоговое окно сохранения. Измените тип Certificate Files
файла на и сохраните файл как C:\sts.cer
.
certreq -new request.inf
certutil -store My "sts.contoso.com"
Скопируйте выходные данные SerialNumber из второй команды и используйте их в следующей команде. Замените <SerialNumber> фактическим значением.
certutil -exportPFX -p "P@ssw0rd1!" CA <SerialNumber> C:\sts.pfx
На первом шаге создается сертификат на основе приведенного выше запроса. Второй шаг позволяет найти серийный номер нового сертификата. Наконец, последний шаг экспортирует сертификат в PFX, защищенный паролем.
Замена сертификата STS
Эта процедура должна выполняться на каждом сервере фермы. Первым шагом является импорт PFX в контейнер доверенных корневых центров сертификации в хранилище локального компьютера.
Import-PfxCertificate
Чтобы импортировать PFX с помощью Import-PfxCertificate
, следуйте примеру.
$password = Get-Credential -UserName "certificate" -Message "Enter password"
Import-PfxCertificate -FilePath C:\sts.pfx -CertStoreLocation Cert:\LocalMachine\Root -Password $password.Password
В этом примере мы сначала создадим учетные данные. Имя пользователя не используется в этом примере, но его необходимо задать. Пароль будет значением экспортированного пароля PFX; в нашем примере "P@ssw0rd1!".
Certutil
certutil -f -p "P@ssw0rd1!" -importpfx Root C:\sts.pfx
В этом примере мы импортируем PFX-файл с помощью certutil
, указав пароль, который мы использовали при экспорте PFX-файла и импорте в контейнер доверенных корневых центров сертификации в хранилище локального компьютера.
Замена сертификата STS в SharePoint
После импорта PFX на всех серверах SharePoint в ферме необходимо заменить сертификат, используемый службой stS. Для выполнения этой операции необходимо быть администратором оболочки SharePoint (дополнительные сведения о добавлении администратора оболочки SharePoint см. в разделе Add-SPShellAdmin ).
С помощью командной консоли SharePoint мы укажем путь к PFX-файлу, зададим пароль, зададим stS для использования нового сертификата, перезапустим СЛУЖБЫ IIS и, наконец, перезапустим службу таймера SharePoint (SPTimerV4).
$path = 'C:\sts.pfx'
$pass = 'P@ssw0rd1!'
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($path, $pass, 20)
Set-SPSecurityTokenServiceConfig -ImportSigningCertificate $cert
iisreset
Restart-Service SPTimerV4
Выполните предыдущие шаги на всех серверах SharePoint в ферме. На этом завершается процесс замены сертификата STS. Если вы используете гибридную ферму, дополнительные действия, необходимые для отправки сертификата STS в Azure, см. в статье Использование сайта Microsoft 365 SharePoint для авторизации надстроек, размещенных у поставщика на локальном сайте SharePoint .