Andrea Cosentino created CAMEL-25645:
----------------------------------------

             Summary: camel-milo - let the OPC UA client validate the server 
certificate against a trust list
                 Key: CAMEL-25645
                 URL: https://issues.apache.org/jira/browse/CAMEL-25645
             Project: Camel
          Issue Type: Bug
          Components: camel-milo
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.24.0


milo-client and milo-browse create the Eclipse Milo client configuration in 
{{MiloClientConfiguration.mapToClientConfiguration}} without setting a 
certificate validator. The configuration therefore keeps Milo's builder 
default, {{CertificateValidator.InsecureCertificateValidator}}, and the server 
certificate of a Sign or SignAndEncrypt endpoint is not checked. The 
{{UsernameProvider}} instances created in 
{{SubscriptionManager.performConnect}} use the two-argument constructor, which 
has the same default. Unlike milo-server ({{defaultCertificateValidator}}), the 
client has no option to configure trust material.

Proposed changes:
* Add client options to configure server certificate validation: a trust list 
directory, using Milo's file based trust list layout as milo-server does, and a 
{{CertificateValidator}} bean reference (explicit, not autowired).
* Validate the server certificate by default when the selected endpoint uses a 
security policy other than None, and fail with a clear message when no trust 
material is configured. Accepting any server certificate stays available only 
through an explicit {{trustAllCertificates}} option marked {{security = 
"insecure:ssl"}}.
* Pass the configured validator to the {{UsernameProvider}} instances.
* Document how to configure trust in milo-client-component.adoc, recommend 
restricting {{allowedSecurityPolicies}}, and correct the note about configuring 
custom certificate validators.
* Add an upgrade guide entry: clients that use a secured security policy need 
trust material, or the explicit option, after upgrading.

_Claude Code on behalf of Andrea Cosentino_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to