TLS/SSL の構成

TLS(Transport Layer Security。前身は SSL)は、アプリから Apigee Edge、バックエンド サービスまで、API 環境全体で安全な暗号化メッセージングを確保するための標準のセキュリティ技術です。

管理 API の環境構成(管理 API の前にプロキシ、ルーター、ロードバランサを使用しているかどうかなど)に関係なく、Edge では TLS を有効にして構成できます。これにより、オンプレミス API 管理環境でのメッセージ暗号化を制御できます。

Edge Private Cloud のオンプレミス環境では、TLS を構成できる場所がいくつかあります。

  1. Router と Message Processor の間
  2. Edge Management API へのアクセスの場合
  3. 新しい Edge UI にアクセスする場合
  4. アプリから API へのアクセスの場合
  5. Edge からバックエンド サービスへのアクセス

Edge での TLS 構成の概要については、TLS/SSL をご覧ください。

JKS ファイルを作成する

多くの TLS 構成では、キーストアを JKS ファイルとして表します。このキーストアには、TLS 証明書と秘密鍵が含まれています。JKS ファイルを作成する方法はいくつかありますが、その 1 つは openssl ユーティリティと keytool ユーティリティを使用する方法です。

たとえば、TLS 証明書を含む server.pem という名前の PEM ファイルと、秘密鍵を含む private_key.pem という名前の PEM ファイルがあるとします。次のコマンドを使用して、PKCS12 ファイルを作成します。

openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12

鍵にパスフレーズが設定されている場合は、そのパスフレーズとエクスポート パスワードを入力する必要があります。このコマンドは、keystore.pkcs12 という名前の PKCS12 ファイルを作成します。

次のコマンドを使用して、keystore.jks という名前の JKS ファイルに変換します。

keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks

JKS ファイルの新しいパスワードと、PKCS12 ファイルの既存のパスワードの入力を求められます。JKS ファイルには、PKCS12 ファイルに使用したのと同じパスワードを使用してください。

鍵エイリアスを指定する必要がある場合(Router と Message Processor 間の TLS を構成する場合など)は、openssl コマンドに -name オプションを追加します。

openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12 -name devtest

次に、keytool コマンドに -alias オプションを追加します。

keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -alias devtest

難読化されたパスワードの生成

Edge TLS 構成手順の一部では、構成ファイルに難読化されたパスワードを入力する必要があります。難読化されたパスワードは、パスワードを書式なしテキストで入力するよりも安全な方法です。

Edge Management Server で次のコマンドを使用して、難読化されたパスワードを生成できます。

/opt/apigee/apigee-service/bin/apigee-service edge-management-server generate-obfuscated-password

新しいパスワードを入力し、プロンプトで確認します。セキュリティ上の理由から、パスワードのテキストは表示されません。このコマンドは、次の形式でパスワードを返します。

OBF:58fh40h61svy156789gk1saj
MD5:902fobg9d80e6043b394cb2314e9c6

TLS を構成するときに、OBF で指定された難読化されたパスワードを使用します。

詳しくは、こちらの記事をご覧ください。