Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerREST 接続 amc_setup
パラメーターは、Anypoint Platform の両方のバージョン (クラウドとオンプレミス) で動作し、Mule Runtime Engine と任意の外部クライアントとの直接の REST 接続が可能です。これによって、外部クライアントは Runtime Manager エージェントの REST API を使用して直接 Mule Runtime Engine にアクセスし、管理できます。
Runtime Manager エージェントを設定して、非セキュア接続またはセキュア接続のいずれかを許可できます。
セキュア REST 設定では、有効なデジタル証明書を使用して Runtime Manager エージェントを設定します。非セキュア REST 設定では、このステップをスキップできます。
暗号化されていない接続を使用するように Runtime Manager エージェントを設定するには、インストールコマンドラインで -I
パラメーターを指定します。これは、REST トランスポートでのみ有効です。ブラウザーや、HTTP 要求を実行するその他のツールを使用して、API とのやりとりを行うことができます。
パラメーター | 説明 |
---|---|
|
Runtime Manager エージェントが暗号化されていない接続を使用するように設定します。 デフォルトの TCP ポートは 9999 です。そのため、ベース URL |
-I
パラメーターによって生成された mule-agent.yml
ファイルの例を次に示します。
transports:
websocket.transport:
enabled: false
rest.agent.transport:
port: 9999
services:
mule.agent.jmx.publisher.service:
enabled: true
frequency: 15
frequencyTimeUnit: MINUTES
インストールコマンドラインで -S
引数を使用することで、TLS 接続を確立するように Runtime Manager エージェントを設定できます。このオプションでは、REST 通信用の TLS チャネルのみが有効になります。
このオプションは、エージェントを手動で管理する場合に使用できます。詳細な手順については、「コントロールプレーンを使用しない Mule Runtime Engine の双方向 TLS の設定」を参照してください。
Anypoint Platform Runtime Manager クラウドコンソールを使用してエージェントを管理している場合は、「コントロールプレーンで管理される Mule Runtime Engine の双方向 TLS の設定」を参照してください。
パラメーター | 説明 |
---|---|
|
Runtime Manager エージェントがオンプレミス管理コンソールと TLS 接続を確立するように設定します。 キーストア (公開/非公開キーペア) とトラストストアのファイルを JKS 形式で提供します。 |
セキュア接続チャネルモードを選択すると、次のメニューが表示されます。
The communication channel for the agent will be encrypted using public/private key certificates. The following steps prompt you for the keystore and truststore. Both keystore and truststore format must be JKS. Keystore location (?): Truststore location (?): Keystore Password (?): Keystore Alias (?): Keystore Alias Password (?): INFO: Mule agent was successfully configured to use a TLS channel for REST communications.
Keystore location (キーストアの場所) (必須)
通信チャネルを暗号化するためのキーストアファイルの場所を指定します。キーストアファイルは JKS 形式である必要があります。
Truststore location (トラストストアの場所)
管理コンソールからの要求を受信するためのトラストストアの場所を指定します。トラストストアは JKS 形式である必要があります。またパスワードは設定しないでください。
Keystore Password (キーストアパスワード)
エージェントがキーストアを読むために使用するパスワードを指定します。エージェントは、キーストアを開くときにもこのパスワードを使用します。
Keystore Alias (キーストアの別名)
キーストア内に保存された鍵の別名を指定します。
Keystore Alias Password (キーストアの別名のパスワード)
キーストア内の別名のパスワード。
-S
パラメーターによって生成された mule-agent.yml
ファイルの例を次に示します。
transports:
websocket.transport:
enabled: false
rest.agent.transport:
restSecurity:
keyStoreFile: server.jks
keyStorePassword: P@ssword
keyStoreAlias: serverkey
keyStoreAliasPassword: P@ssword
port: 9999
services:
mule.agent.jmx.publisher.service:
enabled: true
frequency: 15
frequencyTimeUnit: MINUTES
Mule がコントロールプレーンに接続されていない場合に双方向 TLS を設定するには、amc_setup -S
オプションを使用します。
Runtime Manager エージェント (サーバー) を識別するキーストア (公開/非公開キーペア) を生成します。
Runtime Manager エージェントのホスト名または IP アドレスに一致する CN を設定します。
echo "Generate a new keystore to identify the Runtime Manager agent. Use CN=localhost"
keytool -keystore rmakeystore.jks -genkey -keyalg RSA -keypass mulesoft -storepass mulesoft -noprompt \
-alias rma \
-dname "CN=localhost, OU=Runtime Manager Agent, O=MuleSoft, L=San Francisco, S=Califorina, C=US"
Runtime Manager エージェントの証明書 (公開キーのみ) を DES 形式の証明書ファイルにエクスポートします。
echo "Export the rma alias' certificate from the rmakeystore.jks key store"
keytool -export -alias rma -file rma.crt -keystore rmakeystore.jks -storepass mulesoft
Runtime Manager エージェントに接続する各 REST クライアントに対して、REST クライアントを識別するキーストア (公開/非公開キーペア) を生成します。
echo "Generate a new keystore to be used by client requestors. Use CN=localhost"
keytool -keystore clientkeystore.jks -storepass mulesoft -genkey -keyalg RSA -keypass mulesoft -noprompt \
-alias client \
-dname "CN=localhost, OU=RMA Client, O=MuleSoft, L=San Francisco, S=California, C=US"
REST クライアントの証明書 (公開キーのみ) を DES 形式の証明書ファイルにエクスポートします。
echo "Export the client alias' certificate from the clientkeystore.jks key store"
keytool -export -alias client -file client.crt -keystore clientkeystore.jks -storepass mulesoft
トラストストアファイルを作成します。
echo "Import client and server public keys into a common cacerts.jks truststore file"
keytool -import -v -trustcacerts -alias rma -file rma.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt
keytool -import -v -trustcacerts -alias client -file client.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt
証明書ファイルは自己署名されているため、クライアントは認証機関 (CA) で証明書を検証することはできません。証明書に署名する CA をエミュレートするには、クライアント証明書と RMA 証明書 (公開キー) の両方が入ったトラストストアファイルを作成する必要があります。本番環境では、サーバーとクライアントの両方の証明書は信頼された CA によって署名され、クライアントマシンとサーバーマシンに対して公開または共有されます。
rmakeystore.jks
ファイルと cacerts.jks
トラストストアを使用して Mule Runtime Engine を設定します。
$MULE_HOME/bin
フォルダーで ./amc_setup -S
を実行します。
生成した値の入力を促されたら、入力します。
たとえば、これまでのコマンドを /security
フォルダーから実行した場合は、次の値を入力します。
-> Mule Agent Unpacked
The communication channel for the agent will be encrypted using public/private key certificates.
The following steps prompt you for the keystore and truststore.
Both keystore and truststore formats must be JKS.
Keystore location (?):/security/rmakeystore.jks
Keystore Password (?): mulesoft
Truststore location (?):/security/cacerts.jks
Keystore Alias (?):rma
Keystore Alias Password (?): mulesoft
INFO: Mule agent was successfully configured to use a TLS channel for REST communications.
> more ..\conf\mule-agent.yml
transports:
websocket.transport:
enabled: false
rest.agent.transport:
restSecurity:
keyStoreFile: clientkeystore.jks
keystorePassword: mulesoft
keyStoreAlias: client
keyStoreAliasPassword: mulesoft
port: 9999
services:
mule.agent.jmx.publisher.service:
enabled: true
frequency: 15
frequencyTimeUnit: MINUTES
このコマンドは、/security/cacerts.jks
トラストストアファイルを $MULE_HOME/conf
フォルダーにインポートして、名前を anypoint-truststore.jks
に変更します。
Runtime Manager エージェントバージョン 1.11.0 以降では、デフォルトのトラストストアの名前は anypoint-truststore.jks になります。Runtime Manager エージェントの以前のバージョンでは、デフォルトの名前は truststore.jks でした。
|
Mule Runtime Engine を再起動し、Runtime Manager エージェントの REST インターフェースが正常に起動したことを確認します。
Mule Runtime Engine のログに SSL デバッグを追加します。
./mule -M-Djavax.net.debug=all
Mule がコントロールプレーンに接続されている場合に双方向 TLS を設定する手順は、次のとおりです。
Runtime Manager エージェント (サーバー) を識別するキーストア (公開/非公開キーペア) を生成します。
Runtime Manager エージェントのホスト名または IP アドレスに一致する CN を設定します。
echo "Generate a new keystore to identify the Runtime Manager agent. Use CN=localhost"
keytool -keystore rmakeystore.jks -genkey -keyalg RSA -keypass mulesoft -storepass mulesoft -noprompt \
-alias rma \
-dname "CN=localhost, OU=Runtime Manager Agent, O=MuleSoft, L=San Francisco, S=Califorina, C=US"
Runtime Manager エージェントの証明書 (公開キーのみ) を DES 形式の証明書ファイルにエクスポートします。
echo "Export the rma alias' certificate from the rmakeystore.jks key store"
keytool -export -alias rma -file rma.crt -keystore rmakeystore.jks -storepass mulesoft
Runtime Manager エージェントに接続する各 REST クライアントに対して、REST クライアントを識別するキーストア (公開/非公開キーペア) を生成します。
echo "Generate a new keystore to be used by client requestors. Use CN=localhost"
keytool -keystore clientkeystore.jks -storepass mulesoft -genkey -keyalg RSA -keypass mulesoft -noprompt \
-alias client \
-dname "CN=localhost, OU=RMA Client, O=MuleSoft, L=San Francisco, S=California, C=US"
REST クライアントの証明書 (公開キーのみ) を DES 形式の証明書ファイルにエクスポートします。
echo "Export the client alias' certificate from the clientkeystore.jks key store"
keytool -export -alias client -file client.crt -keystore clientkeystore.jks -storepass mulesoft
クライアント証明書と RMA 証明書の両方が入ったトラストストアファイルを作成します。
echo "Import client and server public keys into a common cacerts.jks truststore file"
keytool -import -v -trustcacerts -alias rma -file rma.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt
keytool -import -v -trustcacerts -alias client -file client.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt
証明書ファイルは自己署名されているため、クライアントは認証機関 (CA) で証明書を検証することはできません。証明書に署名する CA をエミュレートするには、クライアント証明書と RMA 証明書 (公開キー) の両方が入ったトラストストアファイルを作成する必要があります。本番環境では、サーバーとクライアントの両方の証明書は信頼された CA によって署名され、クライアントマシンとサーバーマシンに対して公開または共有されます。
anypoint-truststore.jks
ファイルと mule-agent.yml
ファイルをバックアップします。
cp anypoint-truststore.jks anypoint-truststore.jks.bkp
cp mule-agent.yml mule-agent.yml.bkp
Anypoint Platform 証明書を DES 形式の証明書ファイルにエクスポートします。
パスワードが求められた場合は Enter を押します。
keytool -export -alias hybrid -file hybrid.crt -keystore anypoint-truststore.jks
クライアント、RMA、および Anypoint Platform の証明書が入ったトラストストアファイルを作成します。
keytool -import -v -trustcacerts -alias rma -file rma.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt keytool -import -v -trustcacerts -alias client -file client.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt keytool -import -v -trustcacerts -alias hybrid -file hybrid.crt -keystore cacerts.jks -keypass mulesoft -storepass mulesoft -noprompt
証明書ファイルは自己署名されているため、クライアントは認証機関 (CA) で証明書を検証することはできません。これらの証明書に署名する CA をエミュレートするには、クライアント証明書と RMA 証明書の両方が入ったトラストストアファイルを作成する必要があります。コントロールプレーンとの接続を維持するには、トラストストアファイルに Anypoint Platform 証明書も入っている必要があります。本番環境では、サーバーとクライアントの両方の証明書は信頼された CA によって署名され、クライアントマシンとサーバーマシンに対して公開または共有されます。
Mule Runtime Engine をシャットダウンし、mule-agent.yml
ファイルを修正してセキュア REST API エンドポイントを設定します。
transports: rest.agent.transport: restSecurity: keyStoreFile: rmakeystore.jks keyStorePassword: mulesoft keyStoreAlias: rma keyStoreAliasPassword: mulesoft port: 9995
新しく作成したcacerts.jks
ファイルの名前を anypoint-truststore.jks
に変更します。このファイルが、Runtime Manager エージェントと Anypoint Platform 接続で使用する新しいトラストストアになります。
mv cacerts.jks anypoint-truststore.jks
Runtime Manager エージェントバージョン 1.10.0 以降では、デフォルトのトラストストアの名前は anypoint-truststore.jks になります。Runtime Manager エージェントの以前のバージョンでは、デフォルトの名前は truststore.jks でした。
|
Mule Runtime Engine を起動して、Runtime Manager エージェント REST インターフェースが正常に立ち上がることと、まだ Anypoint Platform の Runtime Manager に接続されていることを確認します。
Mule のログに SSL デバッグを追加します。
./mule -M-Djavax.net.debug=all
双方向 TLS REST 要求を送信するには、次の手順を実行します。
JKS キーストアを P12 キーストアに変換します。
echo "Export client keystore PKCS12 format from JKS"
keytool -importkeystore -srckeystore clientkeystore.jks -srcstoretype JKS -srcstorepass mulesoft \
-destkeystore clientkeystore.p12 -deststoretype PKCS12 -deststorepass mulesoft \
-srcalias client -destalias client
openssl
ツールを使用して、base64 でエンコードされた完全なクライアント証明書 (公開キーと非公開キー) のテキストファイルをエクスポートします。
echo "Export full PEM (public and private keys) for use by client requests (cURL)"
openssl pkcs12 -in clientkeystore.p12 -passin pass:mulesoft \
-out clientkeystore.pem -passout pass:mulesoft
clientkeystore.pem
ファイルを表示して、公開キーと非公開キーの両方がこのファイルにエクスポートされたことを確認できます。
クライアントホストから Runtime Manager エージェントホストに REST 要求を送信します。
SSL エラーが表示されないことと、Runtime Manager エージェントから応答を受信したことを確認します。
--insecure
オプションを使用して、サーバー (Runtime Manager エージェント) の証明書の検証をスキップします。
$ curl -X GET https://localhost:9999/mule/agent/components --cert clientkeystore.pem --insecure
Enter PEM pass phrase:
[{"componentId":"components.configure.request.handler","enabled":true},{"componentId":"clustering.request.handler","enab
led":true},{"componentId":"applications.request.handler","enabled":true},{"componentId":"domains.request.handler","enabl
ed":true},{"componentId":"flows.request.handler","enabled":true},{"componentId":"installer.request.handler","enabled":tr
ue},{"componentId":"logging.request.handler","enabled":true},{"componentId":"monitoring.request.handler","enabled":true}
,{"componentId":"properties.request.handler","enabled":true},{"componentId":"tracking.request.handler","enabled":true},{
"componentId":"application.deployment.notification.internal.message.handler","enabled":true},{"componentId":"domain.depl
oyment.notification.internal.message.handler","enabled":true},{"componentId":"flow.status.notification.internal.message.
handler","enabled":true},{"componentId":"membership.change.notification.internal.message.handler","enabled":true},{"comp
onentId":"primary.node.notification.internal.message.handler","enabled":true},{"componentId":"tracking.notification.inte
rnal.message.handler","enabled":false},{"componentId":"mule.agent.tracking.handler.log","enabled":false},{"componentId":
"mule.agent.gw.http.handler.log","enabled":false},{"componentId":"mule.agent.nagios.jmx.internal.handler","enabled":fals
e},{"componentId":"mule.agent.tracking.handler.splunk","enabled":false},{"componentId":"mule.agent.gw.http.handler.splun
k","enabled":false},{"componentId":"mule.agent.application.service","enabled":true},{"componentId":"mule.agent.clusterin
g.service","enabled":true},{"componentId":"mule.agent.domain.service","enabled":true},{"componentId":"mule.agent.gw.http
.service","enabled":false},{"componentId":"mule.agent.installer.service","enabled":true},{"componentId":"mule.agent.logg
ing.service","enabled":true},{"componentId":"mule.agent.application.metrics.publisher.service","enabled":true},{"compone
ntId":"mule.agent.jmx.publisher.service","enabled":true},{"componentId":"mule.agent.properties.service","enabled":true},
{"componentId":"mule.agent.tracking.service","enabled":true}]