I would like to propose that the CG pursue standardization of Mutual TLS authentication in the fetch API.
This is a feature that is not likely to be implemented by browser runtimes but is in my opinion missing in non-browser runtimes where fetch is the only interoperable HTTP client.
Node.js - https module has the option to provide the cert, key, crl, passphrase, pfx, and ca options.
Deno - using deno --unstable there's Deno.createHttpClient, the result of which can be passed as a client property to fetch's init argument. This method accepts certChain, privateKey, and caCerts options.
Proposal
I would like to propose that the CG pursue standardization of Mutual TLS authentication in the
fetch
API.This is a feature that is not likely to be implemented by browser runtimes but is in my opinion missing in non-browser runtimes where
fetch
is the only interoperable HTTP client.The use-case I have in mind is implementation of OAuth mTLS Client Authentication and Client Certificate-Bound Access Tokens.
Prior Art
Node.js -
https
module has the option to provide thecert
,key
,crl
,passphrase
,pfx
, andca
options.Deno - using
deno --unstable
there'sDeno.createHttpClient
, the result of which can be passed as aclient
property tofetch
'sinit
argument. This method acceptscertChain
,privateKey
, andcaCerts
options.