共用方式為


取代 SharePoint Server 的 STS 憑證

適用於:yes-img-132013 yes-img-16 2016yes-img-19 2019yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

本主題提供在 SharePoint 伺服器陣列中取代 SharePoint 安全性令牌服務 (STS) 憑證的相關信息。

憑證需求

從受信任的證書頒發機構單位購買憑證、從 Active Directory 憑證服務) 等自我裝載 PKI 基礎結構 (建立新的憑證,或建立透過 或 New-SelfSignedCertificate) 建立certreq.exe的自我簽署憑證 (。 憑證必須使用 2048 位加密或更高版本。

若要取代 STS 憑證,您需要使用私鑰憑證 (CER) 和公開的公開憑證, (PFX) 和憑證的易記名稱。

憑證應該在維護期間取代,因為必須重新啟動 SharePoint 定時器服務 (SPTimerV4) 。

由於是公用憑證,而且根據指定的有效期間,私人憑證預設會在 1 到 3 年內過期,當憑證需要更新時,應該遵循此程式。

注意事項

不需要更新預設的 STS 憑證。 只有在取代 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 Cmdlet 自動設定。 然後使用安全密碼,將 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

若要使用 Import-PfxCertificate匯入 PFX,請遵循範例。

$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

在此範例中,我們會使用 certutil匯入 PFX 檔案,指定匯出 PFX 並匯入本機電腦存放區中受信任的跟證書授權單位容器時所使用的密碼。

取代 SharePoint 中的 STS 憑證

在伺服器陣列中的所有 SharePoint 伺服器上匯入 PFX 之後,我們必須取代 STS 正在使用的憑證。 您必須是 SharePoint Shell 系統管理員 (如需如何新增 SharePoint Shell 系統管理員) 以執行此作業的詳細資訊,請參閱 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 憑證取代程式。 如果您使用混合式伺服器陣列,請參閱 使用 Microsoft 365 SharePoint 網站授權內部部署 SharePoint 網站上提供者裝載的載 入宏,以取得將 STS 憑證上傳至 Azure 所需的其他步驟。

另請參閱

SharePoint Server 的混合

Certreq

Certutil