Microsoft Cloud PKI 証明機関を削除する

Microsoft Intune の Microsoft Cloud PKI サービスから発行元およびルート証明機関 (CA) を削除します。 Microsoft Intune 管理センターで次のアクションを使用して、テナント内の証明機関 (CA) を管理できます。

  • CA の一時停止 - CA の使用を停止するには、CA を一時停止します。
  • CA の取り消し - すべてのアクティブなリーフ証明書を取り消してから、CA を取り消します。
  • CA の削除 - Microsoft Intune から CA を削除および削除します。

ルート CA は、アンカー付き発行元 CA がすべて削除されるまで削除できません。 CA を一時停止した後に考えを変えた場合は、その CA の一時停止を解除して使用を再開できます。 ただし、CA の取り消しと削除は永続的なアクションであり、元に戻すことはできません。

この記事では、管理センターで使用可能なアクションを使用して、発行元の CA とルート CA を Microsoft Intune から削除する方法について説明します。

ロールベースのアクセス要件

これらの管理者ロールは、Microsoft Intune 管理センターで CA を削除できます。

  • 組み込みの Microsoft Entra ロールである Intune 管理者
  • カスタム Intune ロール。次の Intune アクセス許可が割り当てられます。
    • CA の読み取り
    • CA の無効化と再有効化
    • 発行されたリーフ証明書を取り消す

発行元 CA の削除

発行元 CA を Microsoft Intune から完全に削除します。 ルート CA を削除しようとしている場合は、最初に次の手順を実行して、そのルート CA に固定されている発行元の CA を削除します。

  1. [テナント管理>Cloud PKI] に移動します。

  2. 使用可能な CA の一覧からアクティブな発行元 CA を選択します。 CA を選択すると、使用可能なアクションが開きます。

  3. [ 一時停止] を選択します。

    Cloud PKI の一時停止アクションを強調表示しているスクリーンショットの例。

  4. 確認を求められたら、もう一度 [一時停止 ] を選択します。

    注:

    発行元 CA を一時停止した後:

    • リーフ証明書を発行できません。
    • 証明書失効リスト (CRL) 要求と AIA 要求に応答し続けます。
  5. CA の一覧に戻り、[更新] を選択 します。 次に、[ 状態 ] 列を調べて、発行元 CA が一時停止されていることを確認します。

    CA のテーブルの [状態] 列を強調表示しているスクリーンショットの例。

  6. 一時停止した CA を選択して、使用可能なすべてのオプションを再度開きます。 次の 2 つの新しいオプションが表示されます。

    • 再開: このオプションは 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. [テナント管理>Cloud PKI] に移動します。

  2. 使用可能な CA の一覧からルート CA を選択します。 CA を選択すると、使用可能なアクションが開きます。

    ルート CA を強調表示している CA リストのスクリーンショット例。

  3. [ 削除] を選択 して、Microsoft Intune から CA を削除します。

    ルート CA の削除アクションが強調表示されている管理センターのスクリーンショットの例。

  4. 確認を求められたら、もう一度 [削除] を選択します。

    重要

    このアクションを元に戻すことはできません。

  5. CA の一覧に戻り、[更新] を選択 します。 ルート CA が一覧に表示されなくなったことを確認します。

アクティブなリーフ証明書を取り消す

発行元 CA を取り消す場合は、最初にすべてのアクティブなリーフ証明書を取り消すことが重要です。 発行元 CA から一度に 1 つのリーフ証明書を取り消すか、リーフ証明書を一括で取り消すことができます。

リーフ証明書を取り消す

  1. Microsoft Intune 管理センターで、 テナント管理>Cloud PKI に移動します。
  2. 発行元 CA を選択します。
  3. [ すべての証明書の表示] を選択します。
  4. アクティブなリーフ証明書を選択し、[ 取り消し] を選択します。 残りのリーフ証明書ごとにこの手順を繰り返します。

すべてのリーフ証明書を取り消す

このセクションのサンプル PowerShell スクリプトを使用して、CA に属するすべてのリーフ証明書を取り消すことができます。 このスクリプトは、Microsoft Cloud PKI に関する情報を Microsoft Intune テナントから取得し、テナント内の発行元 CA のリーフ証明書を取り消します。

  • スクリプトは、すべてのリーフ証明書を取得し、それぞれに対して取り消しアクションを実行します。
  • このスクリプトでは、管理者として、すべてのリーフ証明書を取り消す必要があることを確認するように求められます。
  • スクリプトには、各証明書の確認プロンプトを送信するオプションの構成があります。 スクリプト内のセクションはサンプルでコメントアウトされているため、その部分を実行する場合はもう一度追加します。

重要

このスクリプトは注意して使用してください。 リーフ証明書の取り消しアクションを元に戻すことはできません。

  • サンプル スクリプトを実行する前に確認して、動作を理解し、テナントに与える影響を考慮してください。
  • 最初に、非運用またはテスト テナント アカウントでサンプル スクリプトを実行します。

このスクリプトでは、Microsoft Graph PowerShell モジュール である Microsoft.Graph がインストールされます。 モジュールを正常にインストールするには、スクリプトを実行しているデバイスに管理者権限が必要です。

Connect-MgGraph コマンドは、発行元 CA のリーフ証明書を取り消すアクセス許可を持つ管理者によって発行される必要があります。

スクリプトを実行するには、CA ID が必要です。 管理センターでこの情報を見つけるには、次の手順を実行します。

  1. [テナント管理>Cloud PKI] に移動します。

  2. 発行元 CA を選択します。

  3. ブラウザーの URL を確認して、CA ID を見つけます。 URL の末尾にあるハイフンで区切られた英数字の文字列は CA ID です。 たとえば、次の URL では、CA ID は 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"
}