Share via


EAP-TLS ネットワークの証明書を取得して展開する

Azure Sphere デバイスを EAP-TLS ネットワークに接続するには、そのデバイスの認証に RADIUS サーバーが使用できるクライアント証明書が必要です。 ネットワークで相互認証が必要な場合は、RADIUS サーバーを認証できるように、各デバイスにもルート CA 証明書が必要です。

これらの証明書を取得して展開する方法は、デバイスで使用できるネットワーク リソースによって異なります。

  • EAP-TLS ネットワークが使用可能な唯一のネットワークである場合は、 証明書を手動で展開する必要があります。
  • オープン ネットワークなどの別の形式のネットワークが使用可能な場合は、 "ブートストラップ" アプローチを使用できます。 ブートストラップ アプローチでは、Azure Sphere の高レベル アプリケーションが開いているネットワークから証明書を取得し、それらを使用して EAP-TLS ネットワークに接続します。

注意

証明書 ID はシステム全体であるため、az sphere コマンドまたは新しい証明書を追加する関数呼び出しによって、以前のコマンドまたは関数呼び出しによって追加された証明書が上書きされ、ネットワーク接続エラーが発生する可能性があります。 明確な証明書の更新手順を開発し、証明書 ID を慎重に選択することを強くお勧めします。 詳細については、「 証明書 ID 」を参照してください。

手動デプロイ

EAP-TLS ネットワークがデバイスで使用できる唯一のネットワークである場合は、証明書を手動で展開する必要があります。 手動デプロイでは、ネットワーク接続された PC または Linux マシンを使用して証明書を取得し、Azure Sphere CLI を使用して各 Azure Sphere デバイスに証明書を読み込みます。 この方法では、PC または Linux マシンと Azure Sphere デバイス間の物理的な接続が必要です。

証明書を手動で取得する

ルート CA 証明書とクライアント証明書は、 に存在する必要があります。Azure Sphere デバイスに読み込む PEM 形式。 デバイスのクライアント証明書と秘密キー (および必要に応じて秘密キーのパスワード) と共に、適切なサーバーからルート CA 証明書を取得する必要があります。 各証明書は、EAP-TLS ネットワーク内の適切なサーバーによって生成され、署名されている必要があります。 ネットワーク管理者またはセキュリティ チームは、証明書を取得するために必要な詳細を指定できます。

証明書を に保存します。PC または Linux マシンの PEM 形式を使用し、Azure Sphere CLI を使用して Azure Sphere デバイスに格納します。

CLI を使用して証明書を格納する

ネットワーク PC または Linux マシンに Azure Sphere デバイスを接続し、az sphere コマンドを使用して証明書をデバイスに格納します。

ルート CA 証明書を Azure Sphere デバイスに格納するには:

az sphere device certificate add --certificate "server-key-xyz" --cert-type rootca --public-key-file <filepath_to_server_ca_public.pem>

クライアント証明書を Azure Sphere デバイスに格納するには:

az sphere device certificate add --certificate "client-key-abc" --cert-type client --public-key-file <filepath_to_client_public.pem> --private-key-file <filepath_to_client_private.pem> --private-key-password "_password_"

ブートストラップのデプロイ

Azure Sphere デバイスを多数または多数の場所に接続するには、"ブートストラップ" アプローチの使用を検討してください。 この方法を使用するには、デバイスが証明書を提供できるサーバーにアクセスできるネットワークに接続できる必要があります。 高レベルの Azure Sphere アプリケーションは、使用可能なネットワーク経由でサーバーに接続し、証明書を要求し、デバイスに格納します。

次の図は、このプロセスをまとめたものです。

ブートストラップデプロイ中の証明書フロー

  1. Azure Sphere デバイス上のアプリケーションは、開いているネットワークに接続し、Azure Sphere Security Service に接続して DAA 証明書を取得します。 その後、DAA 証明書がデバイスにインストールされます。 デバイスでは、この証明書を使用して証明書発行サービスで認証する必要があります。

  2. アプリケーションは次に、ネットワーク管理者が指定した証明書発行サービスに接続します。 サーバーとの ID を検証するために DAA 証明書を提示し、EAP-TLS ネットワーク上の RADIUS サーバーのルート CA 証明書と、クライアント証明書と秘密キーを要求します。 サービスは、クライアント ID や必要に応じて秘密キー パスワードなどの他の情報をアプリケーションに渡すことができます。 次に、アプリケーションは、クライアント証明書、クライアント秘密キー、およびルート CA 証明書をデバイスにインストールします。 その後、開いているネットワークから切断できます。

  3. アプリケーションは EAP-TLS ネットワークを構成して有効にします。 デバイスの ID を証明するために、クライアント証明書と秘密キーが提供されます。 ネットワークが相互認証をサポートしている場合、アプリケーションはルート CA 証明書を使用して RADIUS サーバーも認証します。

ブートストラップ中にデバイスを認証し、クライアント証明書を取得する

Azure Sphere デバイスは、デバイス認証および構成証明 (DAA) 証明書を使用して、他の必要な証明書を提供できるサービスに対して認証できます。 DAA 証明書は、Azure Sphere Security Service から入手できます。

DAA 証明書を取得するには:

  1. 高度な アプリケーションのアプリケーション マニフェスト の DeviceAuthentication セクションで、Azure Sphere (レガシ) テナント ID を指定します。
  2. 高度 アプリケーションからDeviceAuth_CurlSslFuncを呼び出して、現在の Azure Sphere カタログの証明書チェーンを取得します。

アプリケーション マニフェストに現在のデバイスの Azure Sphere (レガシ) テナント ID が含まれている場合、ターゲット サービスで TLS 相互認証が必要な場合、 DeviceAuth_CurlSslFunc 関数は DAA クライアント証明書チェーンを使用して認証を行います。

RADIUS サーバーのルート CA 証明書を取得する

RADIUS サーバーのルート CA 証明書を取得するために、アプリケーションはネットワーク上でアクセス可能な証明書サーバー エンドポイントに接続し、証明書を指定できます。 ネットワーク管理者は、エンドポイントに接続して証明書を取得する方法に関する情報を提供できる必要があります。

CertStore API を使用して証明書をインストールする

アプリケーションは CertStore API を使用して、デバイスに証明書をインストールします。 CertStore_InstallClientCertificate関数は、クライアント証明書をインストールし、CERTSTORE_INSTALLROOTCACERTIFICATE RADIUS サーバーのルート CA 証明書をインストールします。 高度なアプリケーションで証明書を管理すると、 証明書管理に CertStore API を使用する方法に関する追加情報が提供されます。

Certificates サンプル アプリケーションは、アプリケーションでこれらの関数を使用する方法を示しています。