Certpipe: tool for converting Pingclair certs

Hi everyone!

I’d like to share a little project I’ve been working on. It’s a pretty small one, but it might turn out to be quite useful for some people.

There’s a project called Pingclair – think of it as Caddy, but rewritten in Rust. It also supports Caddy’s configuration syntax.

However, there’s one small issue: Pingclair stores its certificates in JSON files rather than the standard .crt and .key files that Stalwart expects.

That’s why I created certpipe – a simple converter that bridges the gap between the two. It can be triggered automatically by a systemd .path unit (following a similar approach to the one described in the official Stalwart documentation). It handles Pingclair’s JSON certificate format, converts it into standard PEM certificate and key files, and can optionally trigger a TLS certificate reload via Stalwart’s API as the final step.

I thought it might be worth sharing this with the community so that people using Pingclair and Stalwart together know there’s a solution available.

I hope it’s okay to share this here!

This tool is on my Github here:

Many thanks to the Stalwart developers and the entire community for all your great work! :sparkling_heart: