Passbeam

How do I get server certificates on Linux?

Use ACME. It's how Linux servers normally get certificates, and certbot, acme.sh and Caddy all work with Passbeam.

First make an ACME key: open the client, then Server certificates, then ACME, and click Add ACME key. You need the Directory URL, the Key ID and the HMAC key from there.

certbot with nginx:

certbot
$ sudo certbot --nginx --server <Directory URL> \    --eab-kid <Key ID> --eab-hmac-key <HMAC key> \    -d intranet.riverside.local
certbot with nginx. Use --apache for Apache, or certonly --standalone to just get the files.

certbot's package sets up its own renewal timer, so there's nothing else to do.

acme.sh, if you want something small with no dependencies:

acme.sh
$ acme.sh --register-account --server <Directory URL> \    --eab-kid <Key ID> --eab-hmac-key <HMAC key>$ acme.sh --issue --server <Directory URL> -d intranet.riverside.local --standalone$ acme.sh --install-cert -d intranet.riverside.local --ecc \    --key-file /etc/ssl/private/intranet.key \    --fullchain-file /etc/ssl/certs/intranet.pem \    --reloadcmd "systemctl reload nginx"
acme.sh. The install step copies the files where your web server expects them and reloads it after each renewal.

Caddy gets and renews certificates itself. Put this at the top of your Caddyfile:

Caddyfile
{    acme_ca <Directory URL>    acme_eab {        key_id <Key ID>        mac_key <HMAC key>    }} intranet.riverside.local {    reverse_proxy localhost:8080}
Caddy. The block at the top tells it to use Passbeam for every site in the file.

Passbeam doesn't ask for a challenge, so the server doesn't need to be reachable from the internet and port 80 doesn't need to be open.

Machines that connect to these sites, like other servers or scripts using curl, need to trust the client's Passbeam root. See Do servers and PCs outside Intune trust these certificates?

Related questions

Still stuck? Ask us, or read the rest of the knowledge base.