CA 証明書の管理
このセクションでは、独自の認証局 (CA) 証明書を管理するための一般的なタスクについて説明します。
AWS IoT が認識しない CA によって署名されたクライアント証明書を使用している場合は、AWS IoT で認証局 (CA) を登録できます。
クライアントが最初の接続時に AWS IoT にクライアント証明書を自動的に登録する場合は、クライアント証明書に署名した CA を AWS IoT に登録する必要があります。それ以外の場合は、クライアント証明書に署名した CA 証明書を登録する必要はありません。
注記
CA 証明書は、リージョン内の 1 つのアカウントでのみ DEFAULT
モードで登録できます。CA 証明書は、リージョン内の複数のアカウントで SNI_ONLY
モードで登録できます。
CA 証明書を作成する
CA 証明書がない場合は、OpenSSL v1.1.1i
注記
AWS IoT コンソールでは、この手順を実行できません。
OpenSSL v1.1.1i ツールを使用して CA 証明書を作成するには
-
キーペアを生成します。
openssl genrsa -out
root_CA_key_filename.key
2048 -
キーペアのプライベートキーを使用して CA 証明書を生成します。
openssl req -x509 -new -nodes \ -key
root_CA_key_filename.key
\ -sha256 -days 1024 \ -outroot_CA_cert_filename.pem
CA 証明書の登録
次の手順では、Amazon の CA ではない認証機関 (CA) から証明書を登録する方法について説明します。AWS IoT Core では、証明書の所有権を確認するために、CA 証明書を使用します。Amazon の CA ではない CA によって署名されたデバイス証明書を使用するには、デバイス証明書の所有権を確認できるように、その CA の証明書を AWS IoT Core に登録する必要があります。
CA 証明書の登録 (コンソール)
注記
コンソールで CA 証明書を登録するには、[Register CA certificate]
CA 証明書の登録 (CLI)
CA 証明書を DEFAULT
モードまたは SNI_ONLY
モードで登録できます。DEFAULT
モードでは、1 つの AWS リージョン に 1 つの AWS アカウント で CA を登録できます。SNI_ONLY
モードでは、同一の AWS リージョン に複数の AWS アカウント で CA を登録できます。CA 証明書の詳細については、「certificateMode」を参照してください。
注記
CA を SNI_ONLY
モードで登録することをお勧めします。認証証明書やプライベートキーへのアクセス権を提供する必要はなく、同じ AWS リージョン で複数の AWS アカウント により CA を登録できます。
SNI_ONLY モードでの CA 証明書の登録 (CLI) – 推奨
前提条件
続行する前に、コンピュータで次のものが揃っていることを確認してください。
-
ルート CA の証明書ファイル (次の例では
と表記します)root_CA_cert_filename.pem
-
OpenSSL v1.1.1i
またはそれ以降
AWS CLI を使用して CA 証明書を SNI_ONLY
モードで登録するには
-
AWS IoT に CA 証明書を登録します。register-ca-certificate コマンドを使用して、CA 証明書ファイル名を入力します。詳細については、「AWS CLI コマンドリファレンス」の「register-ca-certificate
」を参照してください。 aws iot register-ca-certificate \ --ca-certificate file://
root_CA_cert_filename.pem
\ --certificate-modeSNI_ONLY
成功した場合、このコマンドは
certificateId
を返します。 -
この時点で、CA 証明書は AWS IoT に登録されていますが、アクティブではありません。CA 証明書によって署名されたクライアント証明書を登録できるようにするには、CA 証明書をアクティブにする必要があります。
このステップにより CA 証明書がアクティブ化されます。
CA 証明書をアクティブ化するには、次のように update-certificate コマンドを使用します。詳細については、「AWS CLI コマンドリファレンス」の「update-certificate
」を参照してください。 aws iot update-ca-certificate \ --certificate-id
certificateId
\ --new-status ACTIVE
CA 証明書のステータスを表示するには、describe-ca-certificate コマンドを使用します。詳細については、「AWS CLI コマンドリファレンス」の「describe-ca-certificate
DEFAULT
モードでの CA 証明書の登録 (CLI)
前提条件
続行する前に、コンピュータで次のものが揃っていることを確認してください。
-
ルート CA の証明書ファイル (次の例では
と表記します)root_CA_cert_filename.pem
-
ルート CA 証明書のプライベートキーファイル (次の例では
と表記します)root_CA_key_filename.key
-
OpenSSL v1.1.1i
またはそれ以降
AWS CLI を使用して CA 証明書を DEFAULT
モードで登録するには
-
get-registration-code を使用して、AWS IoT から登録コードを取得します。プライベートキー検証証明書の
Common Name
として使用するために、返されたregistrationCode
を保存します。詳細については、「AWS CLI コマンドリファレンス」の「get-registration-code」を参照してください。 aws iot get-registration-code
-
プライベートキー検証証明書のキーペアを生成します。
openssl genrsa -out
verification_cert_key_filename.key
2048 -
プライベートキー検証証明書の証明書署名リクエスト (CSR) を作成します。証明書の
Common Name
フィールドに、registrationCode
によって返された get-registration-code を設定します。openssl req -new \ -key
verification_cert_key_filename.key
\ -outverification_cert_csr_filename.csr
証明書に関するいくつかの情報 (例:
Common Name
) の入力を求められます。You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:
your_registration_code
Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: -
CSR を使用して、プライベートキー検証証明書を作成します。
openssl x509 -req \ -in
verification_cert_csr_filename.csr
\ -CAroot_CA_cert_filename.pem
\ -CAkeyroot_CA_key_filename.key
\ -CAcreateserial \ -outverification_cert_filename.pem
\ -days 500 -sha256 -
AWS IoT に CA 証明書を登録します。次のように、CA 証明書のファイル名とプライベートキー検証証明書のファイル名を register-ca-certificate コマンドに渡します。詳細については、「AWS CLI コマンドリファレンス」の「register-ca-certificate
」を参照してください。 aws iot register-ca-certificate \ --ca-certificate file://
root_CA_cert_filename.pem
\ --verification-cert file://verification_cert_filename.pem
成功した場合、このコマンドは
certificateId
を返します。 -
この時点で、CA 証明書は AWS IoT に登録されていますが、アクティブではありません。CA 証明書によって署名されたクライアント証明書を登録できるようにするには、CA 証明書をアクティブにする必要があります。
このステップにより CA 証明書がアクティブ化されます。
CA 証明書をアクティブ化するには、次のように update-certificate コマンドを使用します。詳細については、「AWS CLI コマンドリファレンス」の「update-certificate
」を参照してください。 aws iot update-ca-certificate \ --certificate-id
certificateId
\ --new-status ACTIVE
CA 証明書のステータスを表示するには、describe-ca-certificate コマンドを使用します。詳細については、「AWS CLI コマンドリファレンス」の「describe-ca-certificate
コンソールに CA 証明書を登録するための CA 検証証明書を作成する
注記
この手順は、AWS IoT コンソールから CA 証明書を登録している場合にのみ使用します。
AWS IoT コンソールからこの手順に進んでいない場合は、CA 証明書の登録
続行する前に、同じコンピュータで次のものが揃っていることを確認してください :
-
ルート CA の証明書ファイル (次の例では
と表記します)root_CA_cert_filename.pem
-
ルート CA 証明書のプライベートキーファイル (次の例では
と表記します)root_CA_key_filename.key
-
OpenSSL v1.1.1i
またはそれ以降
コマンドラインインターフェイスを使用して CA 検証証明書を作成し、コンソールに CA 証明書を登録するには
-
を、作成する検証証明書のキーファイルのファイル名 (例えばverification_cert_key_filename.key
verification_cert.key
など) で置き換えます。次にこのコマンドを実行して、プライベートキー検証証明書のキーペアを生成します。openssl genrsa -out
verification_cert_key_filename.key
2048 -
をステップ 1 で作成したキーファイルの名前で置き換えます。verification_cert_key_filename.key
を作成する証明書署名リクエスト (CSR) ファイルの名前で置き換えます。例えば、verification_cert_csr_filename.csr
verification_cert.csr
と指定します。このコマンドを実行して、CSR ファイルを作成します。
openssl req -new \ -key
verification_cert_key_filename.key
\ -outverification_cert_csr_filename.csr
このコマンドでは、後で説明する追加情報の入力を求めるプロンプトが表示されます。
-
AWS IoT コンソールの [Verification certificate] (検証証明書) コンテナで、登録コードをコピーします。
-
openssl コマンドが入力を求める情報を以下の例に示します。
Common Name
フィールド以外では、独自の値を入力することも、空白のままにすることもできます。Common Name
フィールドに、前のステップでコピーした登録コードを貼り付けます。You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:
your_registration_code
Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:終了すると、コマンドによって CSR ファイルが作成されます。
-
を前のステップで使用したverification_cert_csr_filename.csr
で置き換えます。verification_cert_csr_filename.csr
を登録する CA 証明書のファイル名で置き換えます。root_CA_cert_filename.pem
を CA 証明書のプライベートキーファイルのファイル名で置き換えます。root_CA_key_filename.key
を作成する検証証明書のファイル名で置き換えます。例えば、verification_cert_filename.pem
verification_cert.pem
と指定します。openssl x509 -req \ -in
verification_cert_csr_filename.csr
\ -CAroot_CA_cert_filename.pem
\ -CAkeyroot_CA_key_filename.key
\ -CAcreateserial \ -outverification_cert_filename.pem
\ -days 500 -sha256 -
OpenSSL コマンドが完了したら、コンソールに戻ったときにこれらのファイルを使用できるようになります。
-
CA 証明書ファイル (前のコマンドで使用した
)root_CA_cert_filename.pem
-
前のステップで作成した検証証明書 (前のコマンドで使用した
verification_cert_filename.pem
)
-
CA 証明書の非アクティブ化
認証局 (CA) 証明書でクライアント証明書の自動登録が有効になっている場合、AWS IoT は CA 証明書をチェックして、CA が ACTIVE
であることを確認します。CA 証明書が INACTIVE
の場合、AWS IoT はクライアント証明書の登録を許可しません。
CA 証明書を INACTIVE
に設定すると、CA によって発行された新しいクライアント証明書が自動的に登録されなくなります。
注記
疑わしい CA 証明書によって署名された登録済みのクライアント証明書は、明示的にそれぞれのクライアント証明書が取り消されるまで、引き続き使用されます。
CA 証明書の非アクティブ化 (コンソール)
AWS IoT コンソールを使用して CA 証明書を非アクティブ化するには
-
AWS Management Console にサインインして、AWS IoT コンソール
を開きます。 -
左のナビゲーションペインで、[安全性]、[CA] の順に選択します。
-
認証局の一覧で、非アクティブ化する認証局を探し、省略記号のアイコンを選択してオプションメニューを開きます。
-
オプションメニューで、[無効化] を選択します。
認証局は、リストに [非アクティブ] と表示されます。
注記
AWS IoT コンソールには、非アクティブ化した CA によって署名された証明書を一覧表示する方法はありません。これらの証明書を一覧表示する AWS CLI オプションについては、CA 証明書の非アクティブ化 (CLI) を参照してください。
CA 証明書の非アクティブ化 (CLI)
AWS CLI には、CA 証明書を非アクティブ化するための update-ca-certificate
aws iot update-ca-certificate \ --certificate-id
certificateId
\ --new-status INACTIVE
list-certificates-by-ca
CA 証明書のステータスを表示するには、describe-ca-certificate