[GH-ISSUE #2946] [Feature Request] Hot reloading TLS certificates in FRPS #2352

Open
opened 2026-05-05 13:30:56 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @splinter98 on GitHub (May 20, 2022).
Original GitHub issue: https://github.com/fatedier/frp/issues/2946

Describe the feature request

Currently in FRPS TLS certificates are only loaded during the initialisation of the server, so if the signed certificate expires or are replaced FRPS needs to be restarted which will break any client connections.

Looking at how other programs handle this there seems to be two main approaches.

  1. Catch any SIGHUP signals sent to the FRPS process and reload the certificate
  2. Watch the files and reload the files when they changed

The former seemed simpler to implement so I have a working version at: splinter98/frp on the ssh-renewal branch.

Describe alternatives you've considered

I've also considered looking implementing the file monitoring approach but this would introduce another 3rd party library dependency.

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @splinter98 on GitHub (May 20, 2022). Original GitHub issue: https://github.com/fatedier/frp/issues/2946 ### Describe the feature request Currently in FRPS TLS certificates are only loaded during the initialisation of the server, so if the signed certificate expires or are replaced FRPS needs to be restarted which will break any client connections. Looking at how other programs handle this there seems to be two main approaches. 1. Catch any SIGHUP signals sent to the FRPS process and reload the certificate 2. Watch the files and reload the files when they changed The former seemed simpler to implement so I have a working version at: [splinter98/frp](https://github.com/splinter98/frp/tree/ssh-renewal) on the ssh-renewal branch. ### Describe alternatives you've considered I've also considered looking implementing the file monitoring approach but this would introduce another 3rd party library dependency. ### Affected area - [ ] Docs - [ ] Installation - [ ] Performance and Scalability - [X] Security - [X] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [X] Server Plugin - [ ] Extensions - [ ] Others
gitea-mirror added the
proposal
label 2026-05-05 13:30:56 -06:00
Author
Owner

@keliansb commented on GitHub (Aug 20, 2024):

Would love to see this feature implemented!

<!-- gh-comment-id:2298177910 --> @keliansb commented on GitHub (Aug 20, 2024): Would love to see this feature implemented!
Author
Owner

@srekkas commented on GitHub (Apr 3, 2025):

Hi.

We need it too. I am testing if frps/c reloads certificates right now.

<!-- gh-comment-id:2774537808 --> @srekkas commented on GitHub (Apr 3, 2025): Hi. We need it too. I am testing if frps/c reloads certificates right now.
Author
Owner

@srekkas commented on GitHub (Apr 29, 2025):

Yep, it wont reload certificates. We use cert-manager to generate certificates and some automatic reload is must for both frps and frpc.

We can implement sidecar for frpc, which watch certificates and query config reload api, if it will reload certificates.
But what about frps, i do not want use external watcher and reload frps pod, additional config, updates etc...

<!-- gh-comment-id:2838757877 --> @srekkas commented on GitHub (Apr 29, 2025): Yep, it wont reload certificates. We use cert-manager to generate certificates and some automatic reload is must for both frps and frpc. We can implement sidecar for frpc, which watch certificates and query config reload api, if it will reload certificates. But what about frps, i do not want use external watcher and reload frps pod, additional config, updates etc...
Author
Owner

@srekkas commented on GitHub (Feb 5, 2026):

Hi, can it be done :)

<!-- gh-comment-id:3853382924 --> @srekkas commented on GitHub (Feb 5, 2026): Hi, can it be done :)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#2352
No description provided.