翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OCSP ステープリング用のサーバー証明書設定
AWS IoT Core は、サーバー証明書のオンライン証明書ステータスプロトコル (OCSP)
でサーバー証明書OCSPステープリングを有効に AWS IoT Core して、OCSPレスポンダーに定期的にクエリを実行して証明書の有効性を確認できます。OCSP ステープリング設定は、カスタムドメインでドメイン設定を作成または更新するプロセスの一部です。 OCSP ステープリングは、サーバー証明書の失効ステータスを継続的にチェックします。これにより、CA によって失効した証明書が、カスタムドメインに接続するクライアントによって信頼されなくなったことを確認できます。詳細については、「OCSP でのサーバー証明書の有効化 AWS IoT Core」を参照してください。
サーバー証明書OCSPのステープリングは、リアルタイムの失効ステータスチェックを提供し、失効ステータスのチェックに関連するレイテンシーを減らし、安全な接続のプライバシーと信頼性を向上させます。ステープリングを使用する利点の詳細については、OCSP「」を参照してくださいクライアント側のOCSPチェックと比較してOCSPステープリングを使用する利点。
注記
この機能は では使用できません AWS GovCloud (US) Regions。
このトピックの内容
OCSPとは?
オンライン証明書ステータスプロトコル (OCSP) は、Transport Layer Security (TLS) ハンドシェイクのサーバー証明書の失効ステータスを提供するのに役立ちます。
主要なコンセプト
次の主要な概念は、オンライン証明書ステータスプロトコル () の詳細を示していますOCSP。
OCSP
OCSP
OCSP レスポンダー
OCSP レスポンダー (OCSPサーバーとも呼ばれます) は、証明書の失効ステータスを検証しようとするクライアントからのOCSPリクエストを受信して応答します。
クライアント側 OCSP
クライアント側 ではOCSP、クライアントは を使用してOCSP応答者OCSPに連絡し、TLSハンドシェイク中に証明書の失効ステータスを確認します。
サーバー側 OCSP
サーバー側 OCSP (ステープリングとも呼ばれます) OCSP では、サーバーは (クライアントではなく) OCSPレスポンダーにリクエストを行うことができます。サーバーは証明書へのOCSPレスポンスをステープルし、TLSハンドシェイク中にクライアントに返します。
OCSP 図
次の図は、クライアント側OCSPとサーバー側のOCSP動作を示しています。
クライアント側 OCSP
クライアントはサーバーとのTLSハンドシェイクを開始する
ClientHello
メッセージを送信します。サーバーはメッセージを受信し、
ServerHello
メッセージで応答します。また、サーバーはサーバー証明書をクライアントに送信します。クライアントはサーバー証明書を検証し、OCSPURIそこから を抽出します。
クライアントは証明書失効チェックリクエストをOCSPレスポンダーに送信します。
OCSP レスポンダーは OCSPレスポンスを送信します。
クライアントはOCSPレスポンスから証明書のステータスを検証します。
TLS ハンドシェイクが完了しました。
サーバー側 OCSP
-
クライアントはサーバーとのTLSハンドシェイクを開始する
ClientHello
メッセージを送信します。 サーバーはメッセージを受信し、キャッシュされた最新のOCSPレスポンスを取得します。キャッシュされたレスポンスが欠落しているか期限切れの場合、サーバーは証明書のステータスについてOCSP応答者を呼び出します。
OCSP レスポンダーはサーバーにOCSPレスポンスを送信します。
サーバーは
ServerHello
メッセージを送信します。また、サーバーはサーバー証明書と証明書のステータスをクライアントに送信します。クライアントはOCSP証明書のステータスを検証します。
TLS ハンドシェイクが完了しました。
OCSP ステープリングの仕組み
OCSP ステープリングは、クライアントとサーバー間のTLSハンドシェイク中に、サーバー証明書の失効ステータスを確認するために使用されます。サーバーはOCSPレスポンダーにOCSPリクエストを行い、クライアントに返された証明書へのOCSPレスポンスをステープルします。サーバーがOCSPレスポンダーにリクエストを行うことで、レスポンスをキャッシュし、多くのクライアントで複数回使用できます。
OCSP でのステープリングの仕組み AWS IoT Core
次の図は、 でのサーバー側のOCSPステープリングの仕組みを示しています AWS IoT Core。
-
OCSP ステープリングを有効にして、デバイスをカスタムドメインに登録する必要があります。
-
AWS IoT Core は 1 時間ごとにOCSPレスポンダーを呼び出して、証明書のステータスを取得します。
-
OCSP レスポンダーはリクエストを受け取り、最新のOCSPレスポンスを送信して、キャッシュされたOCSPレスポンスを保存します。
-
デバイスはハンドTLSシェイクを開始する
ClientHello
メッセージを送信します AWS IoT Core。 -
AWS IoT Core はサーバーキャッシュから最新のOCSPレスポンスを取得します。サーバーキャッシュは証明書のOCSPレスポンスで応答します。
-
サーバーはデバイスに
ServerHello
メッセージを送信します。また、サーバーはサーバー証明書と証明書のステータスをクライアントに送信します。 -
デバイスはOCSP証明書のステータスを検証します。
-
TLS ハンドシェイクが完了しました。
クライアント側のOCSPチェックと比較してOCSPステープリングを使用する利点
サーバー証明書OCSPステープリングを使用する利点には、次のようなものがあります。
プライバシーの向上
OCSP ステープリングを行わないと、クライアントのデバイスがサードパーティーのOCSP応答者に情報を公開し、ユーザーのプライバシーが侵害される可能性があります。 OCSP ステープリングは、サーバーがOCSP応答を取得し、クライアントに直接配信することで、この問題を軽減します。
信頼性の向上
OCSP ステープリングを使用すると、OCSPサーバーが停止するリスクを軽減できるため、安全な接続の信頼性が向上します。OCSP レスポンスがステープルされると、サーバーは証明書に最新のレスポンスを含めます。これは、OCSPレスポンダーが一時的に使用できない場合でも、クライアントが失効ステータスにアクセスできるためです。 OCSP ステープリングは、サーバーが定期的にOCSPレスポンスを取得し、キャッシュされたレスポンスをTLSハンドシェイクに含めるため、これらの問題を軽減するのに役立ちます。これにより、OCSP応答者のリアルタイムの可用性への依存が軽減されます。
サーバー負荷の削減
OCSP ステープリングは、OCSP応答者からサーバーへのOCSPリクエストに応答する負担を軽減します。これにより、負荷がより均等に分散され、証明書の検証プロセスの効率性が向上し、スケーラブルになります。
レイテンシーの短縮
OCSP ステープリングは、TLSハンドシェイク中の証明書の失効ステータスの確認に関連するレイテンシーを短縮します。クライアントが OCSPサーバーに個別にクエリを実行する代わりに、サーバーはハンドシェイク中にリクエストを送信し、サーバー証明書にOCSPレスポンスをアタッチします。
OCSP でのサーバー証明書の有効化 AWS IoT Core
サーバー証明書OCSPのステープリングを有効にするには AWS IoT Core、カスタムドメインのドメイン設定を作成するか、既存のカスタムドメイン設定を更新します。カスタムドメインを使用してドメイン設定を作成する一般的な方法については、「カスタマーマネージドドメインの作成と設定」を参照してください。
AWS Management Console または を使用してOCSPサーバーステープリングを有効にするには、以下の手順に従います AWS CLI。
コンソールを使用して AWS IoT サーバー証明書OCSPのステープリングを有効にするには:
ナビゲーションメニューで、設定を選択し、ドメイン設定の作成を選択するか、カスタムドメインの既存のドメイン設定を選択します。
前のステップで新しいドメイン設定を作成することを選択した場合は、「ドメイン設定の作成」ページが表示されます。[ドメイン設定プロパティ] セクションで、[カスタムドメイン] を選択します。ドメイン設定を作成する情報を入力します。
カスタムドメインの既存のドメイン設定を更新する場合は、[ドメイン設定の詳細] ページが表示されます。[編集] を選択します。
OCSP サーバーステープリングを有効にするには、「サーバー証明書設定」サブセクションの「サーバー証明書OCSPステープリングを有効にする」を選択します。
-
[ドメイン設定の作成] または [ドメイン設定の更新] を選択します。
を使用してサーバー証明書OCSPのステープリングを有効にするには AWS CLI:
カスタムドメインの新しいドメイン設定を作成する場合、OCSPサーバーのステープリングを有効にするコマンドは次のようになります。
aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true|false"カスタムドメインの既存のドメイン設定を更新する場合、OCSPサーバーのステープリングを有効にするコマンドは次のようになります。
aws iot update-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true|false"
詳細については、「 リファレンスUpdateDomainConfiguration」のCreateDomainConfiguration「」および AWS IoT API「」を参照してください。
でのプライベートエンドポイントOCSPのサーバー証明書の設定 AWS IoT Core
OCSP プライベートエンドポイントの では、Amazon Virtual Private Cloud (Amazon VPC) 内のプライベートOCSPリソースを AWS IoT Core オペレーションに使用できます。このプロセスでは、OCSP応答者として動作する Lambda 関数を設定します。Lambda 関数は、プライベートOCSPリソースを使用して、 AWS IoT Core が使用するOCSPレスポンスを作成する場合があります。
Lambda function
プライベートエンドポイントOCSPのサーバーを設定する前に、コメントのリクエスト (RFC) 6960 準拠のオンライン証明書ステータスプロトコル (OCSP) レスポンダーとして機能する Lambda 関数を作成し、基本的なOCSPレスポンスをサポートします。Lambda 関数は、識別エンコードルール (DER) 形式でOCSPリクエストの base64 エンコードを受け入れます。Lambda 関数のレスポンスは、 DER形式の base64 でエンコードされたOCSPレスポンスでもあります。レスポンスサイズは 4 キロバイト (KiB) を超えることはできません。Lambda 関数は、ドメイン設定 AWS リージョン と同じ AWS アカウント および にある必要があります。Lambda 関数の例を次に示します。
Lambda 関数の例
Lambda 関数の呼び出しを AWS IoT に許可する
Lambda OCSPレスポンダーを使用してドメイン設定を作成するプロセスでは、関数の作成後に Lambda 関数を呼び出す AWS IoT アクセス許可を付与する必要があります。アクセス許可を付与するには、add-permission CLI コマンドを使用できます。
を使用して Lambda 関数にアクセス許可を付与する AWS CLI
-
値を挿入したら、次のコマンドを入力します。
statement-id
値は一意でなければならないことに注意してください。
を正確な値に置き換えます。そうしないと、Id-1234
ResourceConflictException
エラーが発生する可能性があります。aws lambda add-permission \ --function-name "ocsp-function" \ --principal "iot.amazonaws.com" \ --action "lambda:InvokeFunction" \ --statement-id "
Id-1234
" \ --source-arnarn:aws:iot:us-east-1:123456789012
:domainconfiguration/<domain-config-name>/*
--source-account123456789012
IoT ドメイン設定ARNsは次のパターンに従います。サービスで生成されたサフィックスは作成前にはわからないため、サフィックスを に置き換える必要があります
*
。ドメイン設定が作成され、正確な情報がわARNかったら、アクセス許可を更新できます。arn:
aws
:iot:use-east-1:123456789012
:domainconfiguration/domain-config-name/service-generated-suffix
-
コマンドが成功すると、この例のようなアクセス許可ステートメントが返されます。次のセクションに進み、プライベートエンドポイントのOCSPステープリングを設定できます。
{ "Statement": "{\"Sid\":\"
Id-1234
\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1
:123456789012:function:ocsp-function\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:iot:us-east-1:123456789012
:domainconfiguration/domain-config-name/*
\"}}}" }コマンドが成功しない場合は、この例のようなエラーが返されます。続行する前に、エラーを確認して修正する必要があります。
An error occurred (AccessDeniedException) when calling the AddPermission operation: User: arn:aws:iam::57EXAMPLE833:user/EXAMPLE-1 is not authorized to perform: lambda:AddPer mission on resource: arn:aws:lambda:
us-east-1
:123456789012
:function:ocsp-function
プライベートエンドポイントのサーバーOCSPステープリングの設定
コンソールを使用して AWS IoT サーバー証明書OCSPのステープリングを設定するには:
ナビゲーションメニューから設定を選択し、ドメイン設定の作成を選択するか、カスタムドメインの既存のドメイン設定を選択します。
前のステップで新しいドメイン設定を作成することを選択した場合は、「ドメイン設定の作成」ページが表示されます。[ドメイン設定プロパティ] セクションで、[カスタムドメイン] を選択します。ドメイン設定を作成する情報を入力します。
カスタムドメインの既存のドメイン設定を更新する場合は、[ドメイン設定の詳細] ページが表示されます。[編集] を選択します。
OCSP サーバーステープリングを有効にするには、「サーバー証明書設定」サブセクションの「サーバー証明書OCSPステープリングを有効にする」を選択します。
-
[ドメイン設定の作成] または [ドメイン設定の更新] を選択します。
を使用してサーバー証明書OCSPのステープリングを設定するには AWS CLI
カスタムドメインの新しいドメイン設定を作成する場合、OCSPプライベートエンドポイントのサーバー証明書を設定するコマンドは次のようになります。
aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true, ocspAuthorizedResponderArn=arn:aws:acm:us-east-1:123456789012
:certificate/certificate_ID
, ocspLambdaArn=arn:aws:lambda:us-east-1:123456789012
:function:my-function
"カスタムドメインの既存のドメイン設定を更新する場合、OCSPプライベートエンドポイントのサーバー証明書を設定するコマンドは次のようになります。
aws iot update-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true, ocspAuthorizedResponderArn=arn:aws:acm:us-east-1:123456789012
:certificate/certificate_ID
, ocspLambdaArn=arn:aws:lambda:us-east-1:123456789012
:function:my-function
"
- enableOCSPCheck
-
これは、サーバーのOCSPステープリングチェックが有効になっているかどうかを示すブール値です。サーバー証明書のステープリングを有効にするには、この値が true OCSP である必要があります。
- ocspAuthorizedResponderArn
-
これは、 (ARN) に保存されている X.509 証明書の Amazon リソースネーム AWS Certificate Manager () の文字列値ですACM。指定した場合、この証明書 AWS IoT Core を使用して、受信したOCSPレスポンスの署名を検証します。指定しない場合、発行証明書 AWS IoT Core を使用してレスポンスを検証します。証明書は、ドメイン設定 AWS リージョン と同じ AWS アカウント および にある必要があります。承認されたレスポンダー証明書を登録する方法の詳細については、「 に証明書 AWS Certificate Managerをインポートする」を参照してください。
- ocspLambdaArn
-
これは、コメントのリクエスト (ARN) 6960 準拠 (RFC) レスポンダーとして機能し、基本的なOCSPレスポンスをサポートする Lambda 関数の Amazon リソースネーム (OCSP) の文字列値です。Lambda 関数は、 DER形式を使用してエンコードされたOCSPリクエストの base64 エンコードを受け入れます。Lambda 関数のレスポンスは、 DER形式の base64 でエンコードされたOCSPレスポンスでもあります。レスポンスサイズは 4 キロバイト (KiB) を超えることはできません。Lambda 関数は、ドメイン設定 AWS リージョン と同じ AWS アカウント および にある必要があります。
詳細については、「 リファレンスUpdateDomainConfiguration」のCreateDomainConfiguration「」および AWS IoT API「」を参照してください。
でサーバー証明書OCSPステープリングを使用するための重要な注意事項 AWS IoT Core
OCSP でサーバー証明書を使用する場合は AWS IoT Core、次の点に注意してください。
-
AWS IoT Core は、パブリックIPv4アドレス経由で到達可能なOCSP応答者のみをサポートします。
-
のOCSPステープリング機能は、承認されたレスポンダーをサポート AWS IoT Core していません。すべてのOCSPレスポンスは、証明書に署名した CA によって署名される必要があり、CA はカスタムドメインの証明書チェーンの一部である必要があります。
-
のOCSPステープリング機能は、自己署名証明書を使用して作成されたカスタムドメインをサポート AWS IoT Core していません。
-
AWS IoT Core は 1 時間ごとにOCSPレスポンダーを呼び出し、レスポンスをキャッシュします。レスポンダーへの呼び出しが失敗した場合、 AWS IoT Core は最新の有効なレスポンスをステープルします。
-
nextUpdateTime
が有効でなくなった場合、 AWS IoT Core はキャッシュからレスポンスを削除し、TLSハンドシェイクはOCSP次に応答者への呼び出しが成功するまでOCSPレスポンスデータを含めません。これは、サーバーがOCSPレスポンダーから有効なレスポンスを取得する前に、キャッシュされたレスポンスの有効期限が切れた場合に発生する可能性があります。の値は、この時点までOCSPレスポンスが有効であるnextUpdateTime
ことを示します。nextUpdateTime
の詳細については、「サーバー証明書OCSPのログエントリ」を参照してください。 -
は、OCSPレスポンスの受信に AWS IoT Core 失敗したり、期限切れになった既存のOCSPレスポンスを削除したりすることがあります。このような状況が発生した場合、 AWS IoT Core はOCSP応答なしでカスタムドメインによって提供されたサーバー証明書を引き続き使用します。
-
OCSP レスポンスのサイズは 4 KiB を超えることはできません。
でのサーバー証明書OCSPのステープリングのトラブルシューティング AWS IoT Core
AWS IoT Core は、 RetrieveOCSPStapleData.Success
メトリクスとRetrieveOCSPStapleData
ログエントリを に出力します CloudWatch。メトリクスとログエントリは、OCSPレスポンスの取得に関連する問題を検出するのに役立ちます。詳細については、サーバー証明書OCSPステープリングメトリクスおよびサーバー証明書OCSPのログエントリを参照してください。