Skip to content

Environment variables

Browsers and most Mac apps trust the certificates in your Keychain. Many command-line tools and runtimes do not. They carry their own list of trusted authorities, and they reject Puffin’s certificate until you point them at it.

In Settings ▸ TLS, choose Copy environment exports. Puffin saves a copy of its root certificate (a PEM file) in ~/Library/Application Support/Puffin Proxy, and puts lines like these on your clipboard:

Terminal window
export NODE_EXTRA_CA_CERTS='<path to the PEM>'
export REQUESTS_CA_BUNDLE='<path to the PEM>'
export SSL_CERT_FILE='<path to the PEM>'
export CURL_CA_BUNDLE='<path to the PEM>'

Paste them into a terminal and start the tool from there. They last only for that terminal window.

Variable Used by
NODE_EXTRA_CA_CERTS Node.js
REQUESTS_CA_BUNDLE Python’s requests library
SSL_CERT_FILE OpenSSL-based tools
CURL_CA_BUNDLE curl

Firefox keeps its own certificate store. The app shows a note in Settings ▸ TLS about Firefox’s enterprise-roots setting, which lets it use the certificates your Mac trusts.

Tools only pass through Puffin if they are among the captured apps, and only hosts on the decrypt list are readable. See Choosing what to capture and HTTPS and the certificate.