Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of the internal TLS registry #39825

Merged
merged 6 commits into from
Jun 4, 2024

Conversation

cescoffier
Copy link
Member

@cescoffier cescoffier commented Apr 2, 2024

This PR provides a centralized TLS configuration mechanism.

It also replaces the build-time property 'quarkus.tls.trust-all' with a new TLS registry. The previous implementation was potentially problematic, as it could lead to security issues in a production environment.

Please note this is a breaking change for extensions that use the now-deleted TlsConfig.java. However, from a user perspective, the change is seamless. The 'quarkus.tls.trust-all' configuration property has transitioned from a build-time to a runtime configuration.

It also allows configuring the primary and management HTTP server using the TLS registry.

This PR transitions the configuration of the primary and management HTTP servers from quarkus.http.ssl.... to quarkus.tls.keystore/truststore/.... This change provides a more streamlined and intuitive configuration process. The previous approach is still supported.

Additionally, the update introduces support for named configurations, which can be selected using the quarkus.http.tls-configuration-name property.

Same has been done for gRPC clients.

In subsequent PRs, I will address the rest client, malier, redis, reactive DB clients...

@geoand
Copy link
Contributor

geoand commented Apr 24, 2024

I'll start looking at this tomorrow

@cescoffier
Copy link
Member Author

80% of the file changes are related to new tests added.

This comment has been minimized.

This comment has been minimized.

Copy link

github-actions bot commented Apr 24, 2024

🙈 The PR is closed and the preview is expired.

@quarkus-bot quarkus-bot bot added the area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins label Apr 25, 2024
Copy link
Contributor

@geoand geoand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick first superficial pass

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@cescoffier
Copy link
Member Author

@geoand @gsmet Ping - starting tomorrow, I'm starting a 3 weeks without IDE (slides, slides, slides).

@cescoffier
Copy link
Member Author

Friendly reminder @geoand @gsmet

Copy link
Contributor

@geoand geoand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this needs to be merged soon so we can have plenty of baking time (QE CI, etc)

@cescoffier
Copy link
Member Author

Yes, it is also blocking everything else (mTLS, Mailer, ACME...)

@cescoffier
Copy link
Member Author

@geoand @gsmet can we unblock this one?

@geoand
Copy link
Contributor

geoand commented Jun 3, 2024

+1 on merging

This comment has been minimized.

This commit replaces the build-time property 'quarkus.tls.trust-all' with a new TLS registry. The previous implementation was potentially problematic, as it could lead to security issues in a production environment.

Please note, this is a breaking change for extensions that use the now-deleted `TlsConfig.java`. However, from a user perspective, the change is seamless. The 'quarkus.tls.trust-all' configuration property has simply transitioned from a build-time to a runtime configuration.

This comment has been minimized.

…S registry

This commit transitions the configuration of the primary and management HTTP servers from `quarkus.http.ssl....` to `quarkus.tls.keystore/truststore/...`. This change provides a more streamlined and intuitive configuration process. The previous approach is still supported.

Additionally, the update introduces support for named configurations, which can be selected using the `quarkus.http.tls-configuration-name` property.
This commit transitions the configuration of the Quarkus (Vert.x based) gRPC client from `quarkus.grpc.clients.<name>.tls....` to `quarkus.tls.keystore/truststore/...`. This change provides a more streamlined and intuitive configuration process. The previous approach is still supported.

Additionally, the update introduces support for named configurations, which can be selected using the `quarkus.grpc.clients.<name>.tls-configuration-name` property.

Note that this change only updates the Quarkus (Vert.x based) gRPC client. The plain gRPC client (using grpc-java) do not use the TLS registry.
It covers the TLS registry, HTTP configuration and gRPC.
Copy link

quarkus-bot bot commented Jun 3, 2024

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit bd2d5ef.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

⚠️ There are other workflow runs running, you probably need to wait for their status before merging.

Copy link

quarkus-bot bot commented Jun 3, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit bd2d5ef.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.

@cescoffier cescoffier merged commit d74530b into quarkusio:main Jun 4, 2024
55 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.12 - main milestone Jun 4, 2024
@quarkus-bot quarkus-bot bot added the kind/enhancement New feature or request label Jun 4, 2024
@cescoffier
Copy link
Member Author

Merged to unblock the rest of the work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
3 participants