Skip to content
Inkbox

Inkbox

BlogContactDocs
GuidesAPI Reference

Ctrl K

GuidesAPI Reference

Jump to

Passthrough TLS

In passthrough mode, your agent terminates TLS itself — you hold the private key, and Inkbox never sees it. We issue a signed certificate for your tunnel hostname so third parties get a trusted handshake.

Most users should stick with the default edge mode; passthrough is for compliance constraints requiring TLS to terminate inside your network, or for client-side cert pinning.

Passthrough flow

  1. Create the tunnel with tls_mode: "passthrough". Status starts as awaiting_cert — DNS is provisioned but inbound TLS handshakes will fail until you complete step 3.
  2. Generate a CSR locally. The Common Name (CN) must equal your tunnel hostname {tunnel_name}.inkboxwire.com. Keep the private key on the machine running your agent.
  3. POST the CSR to /sign-csr. Inkbox validates the CN, signs it, and returns the certificate plus chain. Status flips to active.
  4. Renew before expiry. Certificates are valid for 90 days. Call /sign-csr again with a fresh CSR before cert_expires_at.

Generate a CSR with OpenSSL

bashbash

This produces tunnel.key (your private key — keep secret) and tunnel.csr (the CSR you'll submit below).


Sign CSR POST

POST /tunnels/{tunnel_id}/sign-csr

Submit a CSR for a passthrough tunnel and receive a signed certificate. Valid only for tunnels with tls_mode: "passthrough" in awaiting_cert or active state.

The first successful signing transitions the tunnel from awaiting_cert to active. Subsequent signings (renewals) are allowed while active.

Rate-limited to 10 successful signings per tunnel per day.

Path parameters

ParameterTypeDescription
tunnel_idUUIDTunnel ID

Request body

FieldTypeRequiredDescription
csr_pemstringYesPEM-encoded CSR. CN must equal {tunnel_name}.inkboxwire.com.

Request example

JSONJSON

Response (200)

JSONJSON

Concatenate cert_pem + chain_pem to produce the full chain your agent should present during the TLS handshake.

Error responses

StatusDescription
400CSR is malformed, or CN doesn't match {tunnel_name}.inkboxwire.com
409Tunnel is not in passthrough mode, or status is not awaiting_cert/active
429Daily signing rate limit exceeded

Code examples

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Passthrough TLS