spring-projects / spring-projects/spring-boot

Support for gRPC server TLS certificate rotation

Open
#49,833 19 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: pending-design-work theme: grpc type: enhancement
Dominant language
Java
Stars
81.5k
Forks
42.7k
Avg merge
2d 4h
Merged PRs (30d)
65

Description

Feature Request: Support for Hot TLS Certificate Rotation

Description

Is there currently support for hot TLS certificate rotation in Spring gRPC? Hot TLS certificate rotation refers to the ability to update/replace TLS certificates without restarting the gRPC server.

Use Case

In production environments, TLS certificates need to be rotated periodically for security reasons or when they expire. Restarting servers to apply new certificates causes service disruption. Hot certificate rotation would allow for certificate updates while maintaining service availability.

Current Understanding

Based on reviewing the codebase and documentation:

  • Spring gRPC supports TLS configuration through Spring Boot's SSL bundle configuration
  • Custom TrustManager implementations are possible (as documented in detail)
  • However, there doesn't appear to be a mechanism to reload/rotate certificates at runtime
Potential Implementation Approaches

If this feature doesn't exist yet, potential approaches might include:

  1. A certificate watcher that monitors certificate files for changes
  2. An API to programmatically update certificates at runtime
  3. Integration with Spring Boot's SSL bundle refresh mechanisms (if available)
Question
  1. Is hot TLS certificate rotation currently supported?
  2. If not, are there plans to add this feature in the future?
  3. Are there any workarounds or recommended approaches for certificate rotation without service disruption?

Thank you for your consideration.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Spring Boot SSL bundle configuration and the documented custom TrustManager support mentioned in the issue, checking whether either exposes runtime certificate replacement. Done would require an agreed approach for rotating server TLS certificates without restarting and clear guidance or tests for the supported behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, java, spring-boot
Domain
backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.