diff --git a/javascript/src/utilities/signingUtilities.js b/javascript/src/utilities/signingUtilities.js
index 3ecb0fd520d9872954d42dfbb478fe0e63c19bed..00d08544476fa4765696064f42de291a01811ad2 100644
--- a/javascript/src/utilities/signingUtilities.js
+++ b/javascript/src/utilities/signingUtilities.js
@@ -435,6 +435,11 @@ function createCertificate(certData, issuerData = null) {
       const serialNumberView = new Uint8Array(serialNumberBuffer);
       pkijs.getRandomValues(serialNumberView);
       serialNumberView[0] &= 0x7f;
+      while (serialNumberView[0] === 0 && (serialNumberView[1] & 0x80) === 0) {
+        const firstBytesView = new Uint8Array(serialNumberBuffer, 0, 2);
+        pkijs.getRandomValues(firstBytesView);
+        firstBytesView[0] &= 0x7f;
+      }
       // noinspection JSUnresolvedFunction
       certificate.serialNumber = new asn1js.Integer({
         valueHex: serialNumberView