刪除Microsoft雲端 PKI 證書頒發機構單位

從 Microsoft Intune 中的 Microsoft 雲端 PKI 服務刪除發行和跟證書授權單位 (CA) 。 您可以在 Microsoft Intune 系統管理中心使用下列動作,在您的租使用者中管理證書頒發機構單位 (CA) :

  • 暫停 CA - 暫停 CA 以停止使用它。
  • 撤銷 CA - 撤銷所有使用中的分葉憑證,然後撤銷 CA。
  • 刪除 CA - 從 Microsoft Intune 刪除和移除 CA。

在刪除所有錨定發行 CA 之前,無法刪除根 CA。 如果您在暫停 CA 之後改變心意,可以將它取消暫停以繼續使用。 不過,撤銷和刪除 CA 是永久性動作,無法復原。

本文說明如何使用系統管理中心的可用動作,從 Microsoft Intune 刪除發行 CA 和根 CA。

角色型存取需求

這些系統管理員角色可以在 Microsoft Intune 系統管理中心刪除 CA:

  • Intune 系統管理員,內建 Microsoft Entra 角色
  • 自訂 Intune 角色,已指派下列 Intune 許可權:
    • 讀取 CA
    • 停用和重新啟用 CA
    • 撤銷發行的分葉憑證

刪除發行 CA

從 Microsoft Intune 永久移除發行 CA。 如果您嘗試刪除根 CA,請先完成下列步驟,以刪除錨定在其中的發行 CA。

  1. 移至 租用戶系統管理>雲端 PKI

  2. 從可用 CA 清單中選取作用中的發行 CA。 選取 CA 會開啟其可用的動作。

  3. 選取 [暫停]

    醒目提示 Cloud PKI 暫停動作的範例螢幕快照。

  4. 當系統提示您確認時,請再次選取 [ 暫停 ]。

    注意事項

    暫停發行 CA 之後:

    • 它無法發行分葉憑證。
    • 它會繼續回應CRL) 要求和 AIA 要求 (證書吊銷清單。
  5. 返回 CA 清單,然後選擇 [ 重新整理]。 然後查看 [ 狀態] 資料 行底下,確認發行 CA 已暫停。

    醒目提示 CA 資料表中 [狀態] 資料行的範例螢幕快照。

  6. 選取已暫停的 CA,再次開啟所有可用的選項。 出現兩個新選項:

    • 繼續:此選項會取消暫停 CA,並讓它再次作用中。
    • 撤銷:此選項會撤銷發行 CA。
  7. 取 [撤銷]

    提示

    若要讓此動作能夠運作,必須已經撤銷屬於 CA 的所有使用中分葉憑證。 如需詳細資訊和步驟,請參閱本文中的 撤銷使用中的分葉憑證

    醒目提示 CA 撤銷動作的範例螢幕快照。

  8. 當系統提示您確認時,請再次選取 [撤銷 ]。

    重要事項

    此動作無法復原。

    注意事項

    撤銷發行 CA 之後:

    • 它會繼續回應CRL和AIA要求。
    • 它不再受信賴憑證者信任,因為信賴憑證者會執行信任鏈結作業。
    • 根 CA 的 CRL 顯示發行 CA 憑證已撤銷。
    • CA 發出的所有現有分葉憑證都會停止驗證。
  9. 返回 CA 清單,然後選擇 [ 重新整理]。 然後查看 [ 狀態] 資料 行底下,確認發行 CA 已撤銷。

    CA 清單的範例螢幕快照,其中醒目提示已撤銷的狀態。

  10. 選取已撤銷的 CA,再次開啟所有可用的選項。

  11. 現在應該可以使用刪除 CA 的選項。 選 取 [刪除 ] 以從 Microsoft Intune 移除 CA。

    醒目提示發行 CA 之刪除動作的範例螢幕快照。

  12. 當系統提示您確認時,請再次選取 [ 刪除 ]。

    重要事項

    此動作無法復原。

  13. 返回 CA 清單,然後選擇 [ 重新整理]。 確認發行 CA 不再出現在清單中。

刪除根 CA

從 Microsoft Intune 永久移除根 CA。

提示

刪除根 CA 之前,請先刪除所有錨定發出 CA。

  1. 移至 租用戶系統管理>雲端 PKI

  2. 從可用 CA 清單中選取根 CA。 選取 CA 會開啟其可用的動作。

    CA 清單的範例螢幕快照,其中醒目提示根 CA。

  3. 取 [刪除 ] 以從 Microsoft Intune 移除 CA。

    系統管理中心的範例螢幕快照,其中醒目提示根 CA 的刪除動作。

  4. 當系統提示您確認時,請再次選取 [ 刪除 ]。

    重要事項

    此動作無法復原。

  5. 返回 CA 清單,然後選擇 [ 重新整理]。 確認根 CA 不再出現在清單中。

撤銷使用中的分葉憑證

嘗試撤銷發行 CA 時,請務必先撤銷其所有使用中的分葉憑證。 您可以一次從發行 CA 撤銷一個分葉憑證,也可以大量撤銷分葉憑證。

撤銷分葉憑證

  1. 在 Microsoft Intune 系統管理中心,移至 租使用者管理>雲端 PKI
  2. 選取發行 CA。
  3. 選擇 [檢視所有憑證]
  4. 選取使用中的分葉憑證,然後選擇 [撤銷]。 在每個剩餘的分葉憑證上重複此步驟。

撤銷所有分葉憑證

您可以使用本節中的範例 PowerShell 腳本,撤銷屬於 CA 的所有分葉憑證。 腳本會從您的 Microsoft Intune 租使用者擷取雲端 PKI Microsoft相關信息,並撤銷租用戶中發行 CA 的分葉憑證。

  • 腳本會擷取所有分葉憑證,並在每個憑證上執行撤銷動作。
  • 腳本會提示您以系統管理員身分確認要撤銷所有分葉憑證。
  • 腳本具有您可以包含的選擇性組態,可針對每個憑證傳送確認提示。 文稿中的 區段會在範例中批注化,因此如果您想要執行該元件,請將它加回 。

重要事項

請小心使用此腳本。 您無法復原任何分葉憑證的撤銷動作。

  • 執行範例腳本之前,請先檢閱範例腳本,以進一步瞭解其運作方式,並考慮它如何影響您的租使用者。
  • 先在非生產或測試租用戶帳戶中執行範例腳本。

腳本會安裝 Microsoft Graph PowerShell 模組 Microsoft.Graph。 執行文本的裝置必須具有系統管理許可權,才能成功安裝模組。

命令 Connect-MgGraph 必須由有權撤銷發行 CA 分葉憑證的系統管理員發出。

執行文稿需要 CA 識別碼。 若要在系統管理中心尋找此資訊:

  1. 移至 租用戶系統管理>雲端 PKI

  2. 選取發行 CA。

  3. 查看瀏覽器 URL 以尋找 CA 識別碼。 URL 結尾處的連字元英數位元字串是 CA 識別符。 例如,在下列 URL 中,CA 標識符是 f12345-acf1-12ab-1b2a-1a1234567a89

    https://intune.microsoft.com/#view/Microsoft_Intune_DeviceSettings/CaDetails.ReactView/id/f12345-acf1-12ab-1b2a-1a1234567a89

指令碼範例

從系統管理工作站執行範例 PowerShell 腳本。 若要執行它,您必須具有下列 Intune 許可權:

  • 讀取 CA
  • 撤銷發行的分葉憑證
 param (
	[string]$caId = $(Read-Host "Input CaId")
	)

Install-Module Microsoft.Graph

Connect-MgGraph -Scopes "DeviceManagementConfiguration.ReadWrite.All"

Start-Transcript -Path ".\RevokeAllLeafCerts_$($caId)_$(Get-Date -f 'yyyyMMdd-HHmmss').txt"

### Get all leaf certs
$leafCerts = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/devicemanagement/cloudCertificationAuthority/$caId/cloudCertificationAuthorityLeafCertificate"

# Prompt user to confirm data cleanup
$confirmAllDelete = $(Write-Host "Are you 100% sure you want to revoke all $($leafCerts.value.count) certificates for CA $($caId)?" -ForegroundColor Yellow; Write-Host '[Y] Yes' -NoNewline; Write-Host ' [N] No' -ForegroundColor Yellow -NoNewline;
Read-Host " ")

if ($confirmAllDelete.ToLower() -ne "y" -and $confirmAllDelete.ToLower() -ne "yes") {
	Write-Host "Aborted"
	Stop-Transcript
	exit
}

# Iterate on retrieved leaf certs and revoke
foreach ($leafCert in $leafCerts.value)
{
	Write-Host ""
	if ($leafCert.certificateStatus.ToLower() -eq "revoked") {
	 	Write-Host "LeafCert id: $($leafCert.id), thumbprint: $($leafCert.thumbprint) is already revoked. Skipping" 
	 	continue
	}
	
    Write-Host "Revoking leafCert id: $($leafCert.id), thumbprint: $($leafCert.thumbprint)" 
	
	# Uncomment next five lines to prompt for each cert
	# $confirmCertDelete = $(Write-Host "Are you sure you want to revoke leafCert id: $($leafCert.id), thumbprint: $($leafCert.thumbprint), $($leafCert.certificateStatus)?" -ForegroundColor Yellow; Write-Host '[Y] Yes' -NoNewline; Write-Host ' [N] No' -ForegroundColor Yellow -NoNewline; Read-Host " ")
	# if ($confirmCertDelete.ToLower() -ne "y" -and $confirmCertDelete.ToLower() -ne "yes") {
	# 	Write-Host "Skipping"
	# 	continue
	# }
	
	$currentCertId = $($leafCert.id)
	$revokeParams = @{ "leafCertificateId" = $($leafCert.id) }

	Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/beta/devicemanagement/cloudCertificationAuthority/$caId/revokeLeafCertificate" -Body ($revokeParams|ConvertTo-Json) -ContentType "application/json"
}