La RFC 5280 §4.1.2.2 exige que les numéros de série soient positifs et uniques pour chaque AC, et les limite à 20 octets. Les Baseline Requirements ajoutent que les numéros de série des certificats TLS publics doivent être non séquentiels, inférieurs à 2¹⁵⁹ et contenir au moins 64 bits issus d’un CSPRNG. Cet aléa rend impraticables les attaques par collision à préfixe choisi contre la signature du certificat, une leçon tirée de l’attaque de 2008 qui a créé une AC frauduleuse (rogue CA) grâce à MD5.
En 2019, plusieurs AC ont découvert que leur logiciel ne produisait que 63 bits aléatoires (le bit de poids fort était forcé à zéro pour que l’entier reste positif) et ont dû révoquer et remplacer des millions de certificats. Un précertificat et son certificat final partagent le même numéro de série.
La plupart des outils affichent les numéros de série en hexadécimal (openssl x509 -serial), avec ou sans deux-points et zéros de tête, ce qui explique souvent pourquoi des numéros de série copiés d’un système à l’autre semblent ne pas correspondre.