証明機関の Exchange Server 証明書要求を作成する
証明書要求の作成は、1 つ以上の Exchange サービスのトランスポート層セキュリティ (TLS) 暗号化を構成する Exchange サーバーに新しい証明書をインストールする最初の手順です。 証明書要求 (証明書署名要求または CSR とも呼ばれる) を使用して、証明機関 (CA) から証明書を取得します。 手順は、内部 CA (Active Directory 証明書サービスなど) または商用 CA から証明書を取得する場合と同じです。 証明書の要求を作成した後で結果を CA に送信すると、CA はその情報を使用して、実際の証明書を発行し、それを後でインストールします。
証明書要求は、Exchange 管理センター (EAC) または Exchange 管理シェルで作成できます。 EAC の 新しい Exchange 証明書 ウィザードを使用すると、証明書に必要なホスト名を選択できます。
はじめに把握しておくべき情報
この手順を実行する際には、あらかじめアクセス許可が割り当てられている必要があります。 必要なアクセス許可の詳細については、 クライアントとモバイル デバイス のアクセス許可に関する記事の「クライアント アクセス サービスのセキュリティ」エントリを参照してください。
予想所要時間:新しい証明書の要求を完成させるには 5 分かかります。 ただし、要求が証明書の発行に至るまでには、より多くの時間が必要です。 詳細については、「次の手順」を参照してください。
適切な証明書の種類および証明書に必要なホスト名の選択は慎重に計画する必要があります。 詳細については、「 Exchange Server でのデジタル証明書と暗号化」を参照してください。
CA の証明書要求の要件を確認します。 Exchange は、Base64 (既定値) または識別エンコード規則 (DER) エンコードを使用する PKCS #10 要求 (.req) ファイルを生成します。RSA 公開キーは 1024、2048 (既定値)、または 4096 ビットです。 エンコードと公開キーのオプションは、Exchange 管理シェルでのみ使用できます。 詳細については、「New-ExchangeCertificate」を参照してください。
EAC では、証明書要求ファイルを UNC パス (
\\<Server>\<Share>\
または\\<LocalServerName>\c$\
) に格納する必要があります。 Exchange 管理シェル では、ローカル パスを指定できます。オンプレミスの Exchange 組織で Exchange 管理シェルを開く方法については、「 Open the Exchange Management Shell」をご覧ください。
この記事の手順に適用されるキーボード ショートカットの詳細については、「 Exchange 管理センターのキーボード ショートカット」を参照してください。
ヒント
問題がある場合は、 Exchange Server、Exchange Online、Exchange Online Protection。 必要な作業 シェルを使用して送信者フィルターを有効または無効にする
EAC を使用して新しい証明書要求を作成する
注:
ECP 証明書要求は、Exchange 2019 CU12 以降および Exchange 2016 CU23 以降では非推奨になりました。
EAC を開き、[サーバー>Certificates] に移動します。
[サーバーの選択] ドロップダウン リストで、証明書をインストールする Exchange サーバーを選択し、[追加] アイコンを選択
。
[Exchange 証明書の新規作成] ウィザードが開きます。
[このウィザードでは、新しい証明書または証明書要求ファイルの作成] ページで、[証明機関からの証明書の要求を作成する] が選択されていることを確認し、[次へ] を選択します。
注:
新しい自己署名証明書を作成するには、「 新しい Exchange Server 自己署名証明書を作成する」を参照してください。
[ この証明書のフレンドリ名 ] ページで、証明書のわかりやすい名前を入力し、[ 次へ] を選択します。
[ワイルドカード証明書を要求する] ページで、次のいずれかを選択します。
- ワイルドカード証明書が必要な場合: [ ワイルドカード証明書の要求] を選択し、[ ルート ドメイン ] ボックスにワイルドカード文字 (*) とドメイン (*.contoso.com や *.eu.contoso.com など) を入力します。 完了したら、[次へ] を選択します。
- サブジェクト別名 (SAN) 証明書が必要な場合: このページで選択を行いません。 次へを選択します。
- 1 つのホストの証明書が必要な場合: このページで選択を行い、[ 次へ] を選択します。
[ このサーバーで証明書要求を保存 する] ページで、[ 参照 ] を選択し、証明書要求を格納する Exchange サーバー (証明書をインストールする場所) を選択します。 次に、[ OK] と [ 次へ] を選択します。
注:
手順 7 と 8 は、SAN 証明書の要求、または 1 つのホストの証明書にのみ適用されます。 [ ワイルドカード証明書の要求] を選択した場合は、手順 9 に進みます。
[ 証明書に含めるドメインの指定 ] ページが表示されます。 このページは基本的に、次の Exchange サービスの証明書に必要な内部ホスト名と外部ホスト名を決定するのに役立つワークシートです。
- Outlook on the web
- オフライン アドレス帳の生成 (OAB)
- Exchange Web サービス
- Exchange ActiveSync
- 自動検出
- POP
- IMAP
- Outlook Anywhere
場所 (内部または外部) に基づいて、各サービスの値を入力します。 次に、証明書に必要なホスト名がウィザードによって決定され、次のページに情報が表示されます。
サービスの値を変更する場合は、[ 編集] (
を選択し、使用するホスト名の値を入力します (または、値を削除します)。 完了したら、[次へ] を選択します。
注:
証明書に必要なホスト名の値が既に決まっている場合、このページに情報を入力する必要はありません。 代わりに、[ 次へ ] を選択して、次のページでホスト名を手動で入力します。
[ 選択内容に基づいて、次のドメインが証明書ページに含まれます ] ページが表示されます。 このページには、証明書要求に含まれるホスト名が一覧表示されます。 証明書の [サブジェクト ] ボックスで使用されるホスト名は太字で、そのホスト名が選択されているかどうかを確認するのが難しい場合があります。
前のページで行った選択内容を参照して、証明書に必要なホスト名エントリを確認します。
証明書要求に含めるホスト名の一覧を考慮しない場合は、手順 10 に進みます。
最後のページの値を無視し、次の手順を実行してホスト名の値を追加、編集、または削除します。 SAN 証明書が必要な場合: 証明書の [サブジェクト ] フィールドのホスト名を選択するには、値を選択し、[ 共通名として設定 ] (チェック マーク) を選択します。 対象の値が太字になります。 b. 1 つのホスト名の証明書が必要な場合: 一度に 1 つずつ他の値を選択し、[ 削除 ] (
) を選択します。
注:
証明書の [サブジェクト ] ボックスに使用される太字のホスト名の値を削除することはできません。 まず、別のホスト名を選択または追加し、[ 共通名として設定 ] ボックスをオンにする必要があります。 [ 戻る ] ボタンを選択すると、このページで行った変更が失われる可能性があります。
[Specify information about your organization (組織に関する情報を指定します)] ページで、次の値を入力します。
- 組織名
- 部署名
- 市区町村
- 都道府県
- 国/地域名
注:
これらの X.500 値は、証明書の [サブジェクト ] ボックスに含まれます。 続行する前にすべてのフィールドに値が必要ですが、CA は特定のフィールド (部署 名など) を気にしない場合がありますが、他のフィールド ( 国/地域名 、 組織名など) は重要です。 CA の [件名 ] ボックスの要件をオンにします。
完了したら、[次へ] を選択します。
[ 証明書要求を次のファイルに保存 する] ページで、証明書要求の UNC パスとファイル名 (例:
\\FileServer01\Data\ExchCertRequest.req
) を入力します。 完了したら、[完了] を選択 します。
証明書要求は、Exchange の証明書の一覧に、 [保留中] の状態で表示されます。 次の手順の詳細については、「次の 手順 」セクションを参照してください。
Exchange 管理シェルを使用して新しい証明書要求を作成する
ワイルドカード証明書、SAN 証明書、または 1 つのホストの証明書に対する新しい要求を作成するには、次の構文を使用します。
証明書要求ファイルの 内容 を CA に送信する必要がある場合は、次の構文を使用して Base64 でエンコードされた要求ファイルを作成します。
$txtrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest [-FriendlyName <DescriptiveName>] -SubjectName C=<CountryOrRegion>[,S=<StateOrProvince>,L=<LocalityOrCity>,O=<Organization>,OU=<Department>],CN=<HostNameOrFQDN> [-DomainName <Host1>,<Host2>...] [-KeySize <1024 | 2048 | 4096>] [-Server <ServerIdentity>] [System.IO.File]::WriteAllBytes('<FilePathOrUNCPath>\<FileName>.req', [System.Text.Encoding]::Unicode.GetBytes($txtrequest))
証明書要求ファイルを CA に送信する必要がある場合は、次の構文を使用して、DER でエンコードされた要求ファイルを作成します。
$binrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -BinaryEncoded [-FriendlyName <DescriptiveName>] -SubjectName C=<CountryOrRegion>[,S=<StateOrProvince>,L=<LocalityOrCity>,O=<Organization>,OU=<Department>],CN=<HostNameOrFQDN> [-DomainName <Host1>,<Host2>...] [-KeySize <1024 | 2048 | 4096>] [-Server <ServerIdentity>] [System.IO.File]::WriteAllBytes('<FilePathOrUNCPath>\<FileName>.pfx', $binrequest.FileData)
注:
X.500 SubjectName パラメーター値 (証明書の [サブジェクト ] ボックス) でコマンドを実行するために必要な部分は、 CN=<HostNameOrFQDN>
のみです。 ただし、常に C=<CountryOrRegion>
値を含める必要があります。 そうしないと、証明書を更新できない場合があります。 CA の [件名 ] ボックスの要件をオンにします。
KeySize パラメーターを使用しない場合、証明書要求には 2048 ビット RSA 公開キーがあります。
Server パラメーターを使用しない場合、コマンドはローカル Exchange サーバーで実行されます。
構文およびパラメーターの詳細については、「New-ExchangeCertificate」を参照してください。
ワイルドカード証明書要求
これらの例では、次のプロパティを使用してワイルドカード証明書の証明書要求ファイルを作成します。
-
SubjectName: 米国の *.contoso.com。値の
C=US,CN=*.contoso.com
が必要です。 -
RequestFile:
\\FileServer01\Data\Contoso Wildcard Cert.<cer or pfx>
- FriendlyName: Contoso.com ワイルドカード証明書
ワイルドカード証明書の Base64 でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$txtrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -FriendlyName "Contoso.com Wildcard Cert" -SubjectName "C=US,CN=*.contoso.com"
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Contoso Wildcard Cert.req', [System.Text.Encoding]::Unicode.GetBytes($txtrequest))
ワイルドカード証明書の DER でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$binrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -BinaryEncoded -FriendlyName "Contoso.com Wildcard Cert" -SubjectName "C=US,CN=*.contoso.com"
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Contoso Wildcard Cert.pfx', $binrequest.FileData)
SAN 証明書要求
これらの例では、次のプロパティを使用して SAN 証明書の証明書要求ファイルを作成します。
-
SubjectName: 米国の mail.contoso.com。値の
C=US,CN=mail.contoso.com
が必要です。 この CN 値は、 DomainName パラメーター ( サブジェクトの別名 フィールド) に自動的に含まれます。 - その他の サブジェクトの別名 フィールド値:
- autodiscover.contoso.com
- legacy.contoso.com
- mail.contoso.net
- autodiscover.contoso.net
- legacy.contoso.net
-
RequestFile:
\\FileServer01\Data\Contoso SAN Cert.<cer or pfx>
- FriendlyName: CONTOSO.COM SAN 証明書
- DomainName: ドメインの引用符で囲まれていないコンマ区切りのリスト
SAN 証明書の Base64 でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$txtrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -FriendlyName "Contoso.com SAN Cert" -SubjectName "C=US,CN=mail.contoso.com" -DomainName autodiscover.contoso.com,legacy.contoso.com,mail.contoso.net,autodiscover.contoso.net,legacy.contoso.net
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Contoso SAN Cert.req', [System.Text.Encoding]::Unicode.GetBytes($txtrequest))
SAN 証明書の DER でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$binrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -BinaryEncoded -FriendlyName "Contoso.com SAN Cert" -SubjectName "C=US,CN=mail.contoso.com" -DomainName autodiscover.contoso.com,legacy.contoso.com,mail.contoso.net,autodiscover.contoso.net,legacy.contoso.net
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Contoso SAN Cert.pfx', $binrequest.FileData)
単一のサブジェクト証明書要求
これらの例では、次のプロパティを使用して、単一のサブジェクト証明書の証明書要求ファイルを作成します。
-
SubjectName: 米国の mail.contoso.com。値の
C=US,CN=mail.contoso.com
が必要です。 -
RequestFile:
\\FileServer01\Data\Mail.contoso.com Cert.<cer or pfx>
- FriendlyName: Mail.contoso.com 証明書
単一のサブジェクト証明書の Base64 でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$txtrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -FriendlyName "Mail.contoso.com Cert" -SubjectName "C=US,CN=mail.contoso.com"
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Mail.contoso.com Cert.req', [System.Text.Encoding]::Unicode.GetBytes($txtrequest))
1 つのサブジェクト証明書の DER でエンコードされた要求ファイルを作成するには、次のコマンドを実行します。
$binrequest = New-ExchangeCertificate -PrivateKeyExportable $True -GenerateRequest -BinaryEncoded -FriendlyName "Mail.contoso.com Cert" -SubjectName "C=US,CN=mail.contoso.com"
[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Mail.contoso.com Cert.pfx', $binrequest.FileData)
これらのコマンドが機能したことをどのように知っていますか?
新しい証明書要求が正常に作成されたことを確認するには、次のいずれかの手順を実行します。
EAC at Servers>Certificates で、証明書要求を保存したサーバーが選択されているかどうかを確認します。 要求は、 Status パラメーターの値が Pending 要求として設定されている証明書の一覧に含まれている必要があります。
証明書の要求を格納したサーバーの Exchange 管理シェル で、次のコマンドを実行します。
Get-ExchangeCertificate | where {$_.Status -eq "PendingRequest" -and $_.IsSelfSigned -eq $false} | Format-List FriendlyName,Subject,CertificateDomains,Thumbprint
次の手順
Base64 でエンコードされた証明書要求ファイルの内容は、次に示す例のようになります。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIEBjCCAu4CAQAwYzEWMBQGA1UEAwwNKi5jb250b3NvLmNvbTELMAkGA1UECwwC
SVQxEDAOBgNVBAoMB0NvbnRvc28xEDAOBgNVBAcMB1NlYXR0bGUxCzAJBgNVBAgM
AldBMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANZFK6JxcQMEBitJcEC82vCvr6251o28CMmrpIkl7Z0MnkCrU+BMTLBuZnIgaLvb
jlzORvH6DP/dbyR8gQEAHVrXVWdr3AJIRbqQXWwN++BM5b2O6lIrA8w41XwGNu6r
dtddi+POf8UYwot7PXw6wDsbKaTs1ePVK/0XdemdJCFIXNfCT8LY4p/KryQAyquo
XDa+Acbx7TRxG2kXNAxgPGve+mvyCyizbugXAJIz4nugJ2k/X1kGYDc7f/b80tCv
bPTcGCr09ScsbKmsQcqJ7UxiX2tScpO5AQxNxJHGL+bA6+96FBjPnFZaqPbFgI74
N6hmZdSEDgQlaGfLEGjZBGMCAwEAAaCCAVwwGgYKKwYBBAGCNw0CAzEMFgo2LjEu
NzYwMS4yMEwGCSqGSIb3DQEJDjE/MD0wDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFNRw1o74zcuGyky33rl7WChgdQrlMHIGCisGAQQBgjcN
AgIxZDBiAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQAgAFMAQwBoAGEA
bgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkA
ZABlAHIDAQAwfAYJKwYBBAGCNxUUMW8wbQIBBQwrRVhIUi0zMjQ4LkVYSFItMzI0
OGRvbS5leHRlc3QubWljcm9zb2Z0LmNvbQwXRVhIUi0zMjQ4RE9NXEVYSFItMzI0
OCQMIk1pY3Jvc29mdC5FeGNoYW5nZS5TZXJ2aWNlSG9zdC5leGUwDQYJKoZIhvcN
AQEFBQADggEBAL63qVj1m2mBz53+nilnlFweOlcltXoxaF28+Kf0hrJVbH5a2Jme
tS0iKU8YXU3mZ3NnWco+5ea024f9awMIzg4z/heE5yEUFf9UtwRGSOc84r2QexPa
zT/rveTTcbliKU0EFhporl3C2uuBCdAewyLj+/k0hABH3djnmMONG6NyC5f+wMun
kkH5naiSLdsTYbq8jkWYuSqL0qdhtmauqWeAPpA0hKDkQk5eDWpOGx3mgxiaQumo
Rqw6dmQ+o8TC+lE3Tvgdfv47A84X8H7Y9h8liS4h0OfbsgEQb8LcM0YHD6yvPgcD
JCmt8A7JFHF9u6mghjiKlXaZ/i+2l10Wsu8=
-----END NEW CERTIFICATE REQUEST-----
この情報を CA に送信する必要があります。 送信方法は CA によって異なりますが、通常は、ファイルの内容を電子メール メッセージまたは CA の Web サイトの証明書要求フォームで送信します。
DER でエンコードされたバイナリ証明書要求が CA に必要な場合 (New-ExchangeCertificate コマンドレットで、BinaryEncoded スイッチを使用)、通常、証明書要求ファイル全体を CA に送信します。
証明機関から証明書を受信した後、保留中の証明書要求を完了する必要があります。 詳細については、「 保留中の Exchange Server 証明書要求を完了する」を参照してください。