Axios s využitím certifikátů (SSL)

Mutual TLS (SSL klientský certifikát)

Od verze TAS 5.17 lze pro HTTPS požadavky nastavit klientský SSL certifikát (mutual TLS) metodou applySslConfig(). Metoda vrací stejnou instanci klienta, takže ji lze řetězit s dalším nastavením (např. setVaultHeader).

Způsob, jakým se získá hodnota certifikátu, se mezi verzemi 5.17 a 5.18 liší — viz sekce níže.

Parametry

Metoda přijímá jeden konfigurační objekt opts:

Parametr

Typ

Popis

ca

string | Buffer | VaultSecretRef

CA bundle (certifikační autorita). Nepovinné.

cert

string | Buffer | VaultSecretRef

Klientský certifikát. Nepovinné.

key

string | Buffer | VaultSecretRef

Privátní klíč ke klientskému certifikátu. Nepovinné.

passphrase

string

Heslo k privátnímu klíči (pokud je klíč zašifrovaný). Nepovinné.

rejectUnauthorized

boolean

Ověřovat SSL certifikát serveru. Výchozí hodnota true.

TAS 5.17 — hodnota certifikátu přes lib.getCertificate()

Ve verzi 5.17 ještě Trezor certifikáty nesdružuje. Hodnotu certifikátu je nutné načíst „postaru" funkcí lib.getCertificate(certName, encoding?) (výchozí kódování binary) a předat ji do applySslConfig() jako string nebo Buffer.

const client = axios.getAxios({ baseURL: 'https://api.mutual-tls.example.com' });
client.applySslConfig({
ca: lib.getCertificate('mtls-ca'),
cert: lib.getCertificate('mtls-client-cert'),
key: lib.getCertificate('mtls-client-key'),
});

const response = client.get('/secure-endpoint');
return response.data;
Absolutní cestu k souboru certifikátu vrací lib.getCertificatePath(certName).

TAS 5.18 — certifikáty i externí zdroje z Trezoru přes vault.get()

Od verze 5.18 Trezor sdružuje jak citlivé hodnoty (API klíče, hesla, tokeny), tak certifikáty a externí zdroje (Administrace → Trezor, záložka Externí zdroje). Ve výpočtu se vše načítá jednotně přes vault.get(name), který vrací VaultSecretRef — ten nelze serializovat ani zalogovat a předává se přímo do applySslConfig().

const client = axios.getAxios({ baseURL: 'https://api.mutual-tls.example.com' });
client.applySslConfig({
ca: vault.get('MTLS_CA'),
cert: vault.get('MTLS_CLIENT_CERT'),
key: vault.get('MTLS_CLIENT_KEY'),
});

const response = client.get('/secure-endpoint');
return response.data;
Stejným způsobem (vault.get(...)) se v 5.18 načítají i hodnoty z externích zdrojů definované na úrovni serverové konfigurace, např. v souboru .env.

Nastavení rejectUnauthorized: false vypne ověření serverového certifikátu a vystavuje spojení riziku MITM útoku. Používej pouze pro testování proti self-signed certifikátům, nikdy v produkci.

Frantisek Brych Updated by Frantisek Brych

AXIOS s využitím Trezoru

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)