Daniel Mejia
05/20/2022, 4:09 PMDaniel Mejia
05/20/2022, 4:09 PMconst DUO_CERTS = __DIR__ . "/ca_certs.pem";
curl_setopt($ch, CURLOPT_CAINFO, self::DUO_CERTS);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
Daniel Mejia
05/20/2022, 4:11 PMexport const DUO_PINNED_CERT = `
subject= /C=US/O=DigiCert Inc/OU=<http://www.digicert.com/CN=DigiCert|www.digicert.com/CN=DigiCert> Assured ID Root CA
-----BEGIN CERTIFICATE-----
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl ...`
// Axios
const agent = new https.Agent({
ca: constants.DUO_PINNED_CERT,
});
Evil Ware
05/20/2022, 4:22 PMDaniel Mejia
05/20/2022, 4:25 PMwil-shiftinsert
05/20/2022, 5:57 PMDaniel Mejia
05/20/2022, 6:04 PMDaniel Mejia
05/20/2022, 6:05 PMwil-shiftinsert
05/20/2022, 6:09 PMDaniel Mejia
05/20/2022, 6:15 PM<cfhttp url="duo.com" cacert="duo_certs.pem"> // make sure this request only goes to <http://duo.com|duo.com>
Daniel Mejia
05/20/2022, 6:33 PMpriyank_adobe
05/20/2022, 6:36 PMDaniel Mejia
05/20/2022, 7:32 PMCertificate pinning doesn't affect the individual requests at all, it's taken into account when the http client is establishing the TLS connection to Duo. It compares the server's TLS certificate to the "pinned" list to determine if it will trust the server. So this definitely relies on the capability of your language's Http client to support.So, its not anything that the request body or headers has to complete the request. This TLS handshaking is all on the client side.
Daniel Mejia
05/20/2022, 7:37 PM