How can I use a Certificate file in NetSuite to sign a HTTP request with Suitescript?

Jira Task : INVER-47

SS2.0 module N/https/clientCertificate holds the answer. Instead of using https.post() use clientCertificate.post() which can send SSL requests with a digital certificate.

define(['N/https/clientCertificate'],
/**
 * @param{clientCertificate} clientCertificate
*/
(clientCertificate) => {
     /* 1st create certificate in NetSuite UI (Setup > Pereferences > Certificates) */

      const certId = 'custcertificate_xy';
      
      /* 2nd use certificates id inside request call */
      
      const response = clientCertificate.post({
      
         url: url,
      
         body: body,
      
         certId: certId,
      
         headers: headers

   });
});
    

Please note that for some reason NetSuite wanted me to have certificate (*.pem) file in following format:

-----BEGIN PRIVATE KEY-----

      {{private key}}

-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE-----

      {{certificate}}

-----END CERTIFICATE-----

Leave a comment

Your email address will not be published. Required fields are marked *