8.2.8. Python クライアントでの SSL の有効化
Python クライアントで SSL を使用するには、以下の いずれか を行います。
- フォームの URL を使用します。host はブローカーのホスト名で
amqps://<host>:<port>、port は SSL ポート(通常は 5671)になります。 - 接続の '
transport' 属性を " に設定しsslます。
Python クライアントには、SSL 機能にいくつかの制限があります。
サーバー認証は要求され、認証に
EXTERNAL SASL メカニズムを使用する場合は、明示的にクライアント名を指定する必要があります。
- Python クライアントにはオプションのパラメーターがあります(を
ssl_trustfile参照 Python SSL パラメーター)。このパラメーターを指定すると、証明書のトラストストアの検証が実行されます。 - オプションのパラメーターが指定されて
ssl_trustfileいる場合、Python クライアントはサーバーの SSL 証明書と接続ホスト名と照合します。 - 認証に EXTERNAL SASL メカニズムを使用する場合は、接続文字列にクライアント名を指定する必要があります。接続文字列で提供されるこのクライアント名は、SSL 証明書のアイデンティティーと一致する必要があります。この 2 つがない場合、接続に失敗するか、接続文字列にクライアント名を指定しないか、または SSL 証明書のアイデンティティーに一致するクライアント名を指定します。
Python SSL パラメーター
QPID Python クライアントは、以下の SSL 関連の設定パラメーターを受け入れます。
ssl_certfile- 接続のローカル側(クライアント)を識別するために使用される PEM 形式の証明書が含まれるファイルへのパス。これは、サーバーがクライアント側の認証が必要な場合に必要です。ssl_keyfile- クライアントの秘密鍵は、証明書(ssl_certfile など)と同じファイルに保存されます。クライアントの秘密鍵が含まれてssl_certfileいない場合には、このパラメーターを PEM ファイル形式の秘密鍵を含むファイルへのパスに設定する必要があります。ssl_skip_hostname_check- true に設定すると、サーバー証明書に対する接続ホスト名の検証はスキップされます。ssl_trustfileこのパラメーターには、信頼できる認証局(CA)証明書のチェーンが含まれる PEM 形式のファイルへのパスが含まれます。これらの証明書は、リモートサーバーの認証に使用されます。- これらのパラメーターは、作成時に
qpid.Connection()オブジェクトへの引数として渡されます。例:Connection("amqps://client@127.0.0.1:5671", ssl_certfile="/path/to/certfile", ssl_keyfile="/path/to/keyfile")