刪除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。
移至 租用戶系統管理>雲端 PKI。
從可用 CA 清單中選取作用中的發行 CA。 選取 CA 會開啟其可用的動作。
選取 [暫停]。
當系統提示您確認時,請再次選取 [ 暫停 ]。
注意事項
暫停發行 CA 之後:
- 它無法發行分葉憑證。
- 它會繼續回應CRL) 要求和 AIA 要求 (證書吊銷清單。
返回 CA 清單,然後選擇 [ 重新整理]。 然後查看 [ 狀態] 資料 行底下,確認發行 CA 已暫停。
選取已暫停的 CA,再次開啟所有可用的選項。 出現兩個新選項:
- 繼續:此選項會取消暫停 CA,並讓它再次作用中。
- 撤銷:此選項會撤銷發行 CA。
選 取 [撤銷]。
提示
若要讓此動作能夠運作,必須已經撤銷屬於 CA 的所有使用中分葉憑證。 如需詳細資訊和步驟,請參閱本文中的 撤銷使用中的分葉憑證 。
當系統提示您確認時,請再次選取 [撤銷 ]。
重要事項
此動作無法復原。
注意事項
撤銷發行 CA 之後:
- 它會繼續回應CRL和AIA要求。
- 它不再受信賴憑證者信任,因為信賴憑證者會執行信任鏈結作業。
- 根 CA 的 CRL 顯示發行 CA 憑證已撤銷。
- CA 發出的所有現有分葉憑證都會停止驗證。
返回 CA 清單,然後選擇 [ 重新整理]。 然後查看 [ 狀態] 資料 行底下,確認發行 CA 已撤銷。
選取已撤銷的 CA,再次開啟所有可用的選項。
現在應該可以使用刪除 CA 的選項。 選 取 [刪除 ] 以從 Microsoft Intune 移除 CA。
當系統提示您確認時,請再次選取 [ 刪除 ]。
重要事項
此動作無法復原。
返回 CA 清單,然後選擇 [ 重新整理]。 確認發行 CA 不再出現在清單中。
刪除根 CA
從 Microsoft Intune 永久移除根 CA。
提示
刪除根 CA 之前,請先刪除所有錨定發出 CA。
移至 租用戶系統管理>雲端 PKI。
從可用 CA 清單中選取根 CA。 選取 CA 會開啟其可用的動作。
選 取 [刪除 ] 以從 Microsoft Intune 移除 CA。
當系統提示您確認時,請再次選取 [ 刪除 ]。
重要事項
此動作無法復原。
返回 CA 清單,然後選擇 [ 重新整理]。 確認根 CA 不再出現在清單中。
撤銷使用中的分葉憑證
嘗試撤銷發行 CA 時,請務必先撤銷其所有使用中的分葉憑證。 您可以一次從發行 CA 撤銷一個分葉憑證,也可以大量撤銷分葉憑證。
撤銷分葉憑證
- 在 Microsoft Intune 系統管理中心,移至 租使用者管理>雲端 PKI。
- 選取發行 CA。
- 選擇 [檢視所有憑證]。
- 選取使用中的分葉憑證,然後選擇 [撤銷]。 在每個剩餘的分葉憑證上重複此步驟。
撤銷所有分葉憑證
您可以使用本節中的範例 PowerShell 腳本,撤銷屬於 CA 的所有分葉憑證。 腳本會從您的 Microsoft Intune 租使用者擷取雲端 PKI Microsoft相關信息,並撤銷租用戶中發行 CA 的分葉憑證。
- 腳本會擷取所有分葉憑證,並在每個憑證上執行撤銷動作。
- 腳本會提示您以系統管理員身分確認要撤銷所有分葉憑證。
- 腳本具有您可以包含的選擇性組態,可針對每個憑證傳送確認提示。 文稿中的 區段會在範例中批注化,因此如果您想要執行該元件,請將它加回 。
重要事項
請小心使用此腳本。 您無法復原任何分葉憑證的撤銷動作。
- 執行範例腳本之前,請先檢閱範例腳本,以進一步瞭解其運作方式,並考慮它如何影響您的租使用者。
- 先在非生產或測試租用戶帳戶中執行範例腳本。
腳本會安裝 Microsoft Graph PowerShell 模組 Microsoft.Graph。 執行文本的裝置必須具有系統管理許可權,才能成功安裝模組。
命令 Connect-MgGraph
必須由有權撤銷發行 CA 分葉憑證的系統管理員發出。
執行文稿需要 CA 識別碼。 若要在系統管理中心尋找此資訊:
移至 租用戶系統管理>雲端 PKI。
選取發行 CA。
查看瀏覽器 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"
}