spring-projects / spring-projects/spring-boot

Let's encrypt integration

Open
#6,148 12 comments 33 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

theme: ssl type: enhancement
Dominant language
Java
Stars
81.5k
Forks
42.7k
Avg merge
2d 4h
Merged PRs (30d)
65

Description

Configuring SSL with Java is a pita, and developers typically don't master the JDK commands used to deal with keystores, etc.

Obtaining an SSL certificate in itself is not a piece of cake either. Let's encrypt allows obtaining and renewing certificates for free, in an automated way. But as far as I know, there is no integration with the Java mechanisms to store keys and certificates.

I personally use an Nginx frontend for my Spring-boot applications, only to make it easier to use SSL (and sometimes virtual hosts, but that's another matter).

I have frankly no idea if my idea is doable, but it would be really cool if we could just, in a Spring boot app, set one or two properties (domain name, contact email), and have Spring request a certificate at startup if it doesn't exist, and configure a scheduled job to renew it.

I think it would be a major selling point for Spring boot if it could have SSL out of the box.

I guess that means Spring would need to talk the ACME protocol with let's encrypt, which must be doable, to write private keys and certificates programmatically to the keystore (not sure if it's doable), and make sure the embedded container uses this new key/certificate without having to restart.

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

The issue names no files, tests, or existing entry point. Start by reviewing Spring Boot's SSL configuration and embedded-server certificate handling, then investigate ACME and Let's Encrypt integration requirements. Done would require a defined, tested approach for certificate issuance, renewal, keystore updates, and server reconfiguration without restart.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.