I was struggling with the client certificate with Puppeteer. Can you use client certificate for authentication? Yes, you can , but you have to do 3 things:

– Run the puppeteer in normal mode (headlesss=false)
– Import the certificate to your profile , you need a certificate file in pfx format , this is my script to import

echo "Importing certificate" mkdir -p $HOME/.pki/nssdb certutil -d sql:$HOME/.pki/nssdb -N --empty-password certutil -d sql:$HOME/.pki/nssdb -L pk12util -d sql:$HOME/.pki/nssdb -i /config/cert.pfx -W ""

– Update the policy:
/etc/chromium/policies/managed/policy.json ( if you using Chrome, then it should be /etc/opt/chrome/policies/managed/policy.json)
Here is my sample file:

 

{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
,
"AuthServerWhitelist": "*.org",
"AuthNegotiateDelegateWhitelist": "*.org" ,
"AuthSchemes":"basic,digest,ntlm,negotiate",
"DisableAuthNegotiateCnameLookup": true

}