Flex Gateway新着情報
Governance新着情報
Monitoring API Managerデフォルトでは、アプリケーションバリデーターサービスは JAR 署名バリデーターを実装し、認証されていないアーティファクトのデプロイを禁止します。 アーティファクト JAR ファイルのそれぞれの署名済みエントリが、キーストアのいずれかの別名と一致する必要があります。 ランタイムにデプロイされたすべてのアーティファクトを検証するために使用するキーストアの別名を指定できます。期限切れの証明書で署名されたアーティファクトも使用できます。
$MULE_HOME/conf/mule-agent.yml
ファイルを変更して次を含めます。
services:
mule.agent.artifact.validator.service:
enabled: true
validators:
- type: jarSignatureValidator
name: defaultJarSignatureValidator
enabled: true
args:
truststore: signers-truststore.jks
truststoreType: JKS
truststoreAlias: code-signer-alias-1
truststorePassword: '![PBEWITHSHA1ANDDESEDE,U/nA0wV714oNi9LHoAkDtiwg22ngG6b7yFTtg7fk2d4=]'
次のプロパティを使用して、JAR 署名バリデーターを設定します。
キー | 説明 |
---|---|
|
必須。 |
|
必須。1 つのバリデーター種別は複数の実装を持つことができます。Runtime Manager エージェントで実装される |
|
省略可能。バリデーターの実装を有効にするには |
次の引数を使用して、JAR 署名バリデーターを設定します。
キー | 説明 |
---|---|
|
省略可能。デプロイメントに使用するすべての JAR ファイルの署名を検証するために使用する 1 つ以上の証明書を含むトラストストアのファイル名。デフォルトの場所は |
|
省略可能。 |
|
省略可能。トラストストアファイルに保存されている各証明書は、別名文字列で識別されます。このプロパティは、すべての JAR ファイルの検証に使用する単一の別名を指定します。別名を指定しなかった場合、バリデーターはトラストストアのすべての証明書を使用して JAR ファイルの署名を検証します。 |
|
JKS では省略可能ですが、PKCS12 では必須です。トラストストアファイルのパスワード。 |
Mule Runtime Engine を起動し、バリデーターが正常に設定されたことを確認します。コンソールに次のログが表示されます。
AgentApplicationValidatorService: Initializing Artifact Validator service
AgentApplicationValidatorService: Total validators loaded: 1
AgentApplicationValidatorService: Validators listed by type:
AgentApplicationValidatorService: Type: jarSignatureValidator Names: [defaultJarSignatureValidator]
必要なファイル:
app-signed-by-trust-signer-01.jar
signers-truststore.jks
ファイル: mule-agent.yaml
services:
mule.agent.artifact.validator.service:
enabled: true
validators:
- type: jarSignatureValidator
name: defaultJarSignatureValidator
enabled: true
args:
truststore: signers-truststore.jks
truststoreType: JKS
truststorePassword: mulesoft
curl コマンド:
curl -X PUT 'http://localhost:9999/mule/applications/app-signed-by-trust-signer-01' \
-H 'Content-Type: application/json' \
-d '{"url": "file:/tmp/yahoo/app-signed-by-trust-signer-01.jar", \
"configuration": {}
}'
応答:
{
"application": {
"name": "app-signed-by-trust-signer-01"
},
"status": "Deployment attempt started"
}
コンソールログ:
AgentApplicationService: Deploying the app-signed-by-trust-signer-01 application from URL file:/tmp/yahoo/app-signed-by-trust-signer-01.jar
KeystoreUtils: Loading Jar Signers Truststore from '/private/tmp/trash/server-yahoo/conf/signers-truststore.jks'
JarSigner: Jar Signature verified: File /var/folders/sq/71l1hxdn171dpc46fn675yk80000gq/T/mule-received-artifact-5158252349422012120/app-signed-by-trust-signer-01.jar
AgentApplicationValidatorService: Application validation success for application: 'app-signed-by-trust-signer-01'
必要なファイル:
app-signed-by-trust-signer-01.jar
signers-truststore.jks
ファイル: mule-agent.yaml
services:
mule.agent.artifact.validator.service:
enabled: true
validators:
- type: jarSignatureValidator
name: defaultJarSignatureValidator
enabled: true
args:
truststore: signers-truststore.jks
truststoreType: JKS
truststoreAlias: code-signer-alias-01
truststorePassword: mulesoft
curl コマンド:
curl -X PUT http://localhost:9999/mule/applications/app-signed-by-trust-signer-01
-H "Content-Type: application/json"
-d '{"url": "file:/tmp/yahoo/app-signed-by-trust-signer-01.jar",\
"configuration": {}
}'
応答:
{
"application": {
"name": "app-signed-by-trust-signer-01"
},
"status": "Deployment attempt started"
}
コンソールログ:
AgentApplicationService: Deploying the app-signed-by-trust-signer-01 application from URL file:/tmp/yahoo/app-signed-by-trust-signer-01.jar
KeystoreUtils: Loading Jar Signers Truststore from '/private/tmp/trash/server-yahoo/conf/signers-truststore.jks'
JarSigner: Jar Signature verified using certificate alias 'code-signer-alias-01': File '/var/folders/sq/71l1hxdn171dpc46fn675yk80000gq/T/mule-received-artifact-3796117303843373481/app-signed-by-trust-signer-01.jar'
AgentApplicationValidatorService: Application validation success for application: 'app-signed-by-trust-signer-01'
必要なファイル:
app-signed-by-expired-trusted-signer.jar
signers-truststore.jks
ファイル: mule-agent.yaml
services:
mule.agent.artifact.validator.service:
enabled: true
validators:
- type: jarSignatureValidator
name: defaultJarSignatureValidator
enabled: true
args:
truststore: signers-truststore.jks
truststoreType: JKS
truststoreAlias: expired-code-signer
truststorePassword: mulesoft
curl コマンド:
curl -X PUT http://localhost:9999/mule/applications/app-signed-by-expired-trusted-signer \
-H "Content-Type: application/json"
-d '{"url": "file:/tmp/yahoo/app-signed-by-expired-trusted-signer.jar", \
"configuration": {}
}'
応答:
{
"type": "class com.mulesoft.agent.exception.ApplicationValidationException",
"message": "CertificateExpiredException - NotAfter: Wed Dec 22 14:45:54 AST 2021"
}
コンソールログ:
AgentApplicationService: Deploying the app-signed-by-expired-trusted-signer application from URL file:/tmp/yahoo/app-signed-by-expired-trusted-signer.jar
KeystoreUtils: Loading Jar Signers Truststore from '/private/tmp/trash/server-yahoo/conf/signers-truststore.jks'
MuleAgentSignatureValidator: There was an error validating the certificate with the alias 'expired-code-signer' - CertificateExpiredException Reason: 'NotAfter: Wed Dec 22 14:45:54 AST 2021'
ApplicationsRequestHandler: Error performing the deployment of app-signed-by-expired-trusted-signer. Cause: ApplicationValidationException: CertificateExpiredException - NotAfter: Wed Dec 22 14:45:54 AST 2021