Skip to main content
    Code Signing

    Sharing One Code Signing Certificate Across a Team

    Since June 2023 a code signing key cannot be copied to a second machine. How teams of developers share one certificate, and what each option costs.

    MS
    My-SSL Team
    ·
    15 min read
    ·
    Published August 27, 2026
    ·
    Last updated August 27, 2026

    The short answer

    A team can share one code signing certificate, but it cannot share the key. Since 1 June 2023 the private key has to be generated inside hardware certified to FIPS 140-2 Level 2 or Common Criteria EAL 4+, and it is non-exportable, so there is no file to copy onto a second laptop. What a team shares is access to that one key: a USB token physically carried between machines, a cloud certificate whose signing session only one person can hold at a time, or a signing host that accepts artifacts from anyone and hands back signatures. Only the third pattern lets two people sign at once, and the obvious alternative, buying a certificate per developer, splits your Windows SmartScreen reputation across every certificate you hold.

    If the certificate is not bought yet, this belongs in the purchase rather than after it, because the storage form decides which patterns below are even open to you. Our code signing certificates come in both USB token and cloud form, and a team of four wants a different one from a solo developer who occasionally ships an installer.

    How sharing a code signing certificate changed from copying a key file to routing several developers to one piece of certified hardwareTwo panels compare the old and current ways a team shares one code signing certificate. The left panel, marked as no longer possible, shows a PFX file containing the private key being copied from a certificate authority to three developer laptops, each holding an identical copy of the key. The right panel, highlighted in gold, shows a single certified hardware device holding one non-exportable key, with three separate routes reaching it: a USB token physically carried between machines, a cloud session that only one person can hold at a time, and a signing host that accepts artifacts from anyone on the team. A footer states that since June 2023 the key never leaves the hardware, so what a team shares is access rather than the key itself.The team still shares one certificate. It no longer shares one file.BEFORE JUNE 2023signing.pfxkey inside the filedev 1copydev 2copydev 3copyThree keys in three places.Nobody could say how many copiesexisted, and leaked keys signedmalware under real company names.SINCE 1 JUNE 2023certified hardware1 key, non-exportabletokencarried betweenmachinescloud sessionone holderat a timesigning hostthe whole teamsends artifactsOne key, three routes to it.Choosing the route is the whole decision.The key never leaves the hardware, so a team cannot share the key. It shares access to the key.Every workaround people ask about (export it, email it, put it in the secret manager) was closed by the same rule change.
    Almost every confusing answer to this question comes from advice written before the left-hand panel stopped being possible.

    Can a team share one code signing certificate?

    Yes, and for most teams it is the right answer. A code signing certificate identifies an organisation, not an employee, so every developer in that organisation signing that organisation's software is exactly what it was issued for. Nothing in the rules says one named person must be the only signer. What the rules constrain is where the key lives and who controls it.

    The Code Signing Baseline Requirements make the subscriber promise to keep sole control of the private key, keep it confidential and protect it properly. Read that as an organisational boundary rather than a personal one. Four employees signing releases through a controlled process are inside it. A token posted to a contractor who invoices you from another company is not, and neither is a key sitting in a shared drawer that anybody in the building can open.

    So the interesting question was never permission. It is mechanics: exactly how does developer number two get a signature out of a device that is plugged into developer number one's machine?

    Why there is no key file to copy any more

    Until mid-2023 a standard code signing certificate arrived as a PFX file with the private key inside it, and sharing it with the team meant sharing that file. From 1 June 2023 the CA/Browser Forum required the key pair for every publicly trusted code signing certificate to be generated and stored in a hardware crypto module meeting FIPS 140-2 Level 2, Common Criteria EAL 4+ or equivalent. The key is created inside the device and cannot be exported.

    That single change closed every workaround people still search for. There is no PFX to email, nothing to drop into a secret manager, nothing to check into a private repository, and no way to install the same certificate twice in the ordinary sense. Certificate authorities stopped supporting browser-based key generation for these products at the same time, so the key does not touch a laptop even once on its way to you.

    It also explains why so much advice about sharing code signing certificates reads as nonsense now. Anything written before June 2023 assumes a file that no longer exists. The rule applied to standard OV certificates that year; EV code signing had required hardware for years already, which is why EV teams hit the team-sharing problem long before everyone else did. The practical differences between the two are covered in EV vs OV code signing.

    The USB token: one machine at a time

    A token can be used on any number of computers, just never on two at once. It is a physical object: unplug it, walk it to another desk, install the middleware there, plug it in, and the certificate is available to SignTool, jarsigner or anything else that reads the system certificate store. The certificate is not bound to a machine. It is bound to a piece of plastic somebody has to be holding.

    Two things make this worse in practice than it sounds. The middleware has to be installed and working on every machine that will ever hold the token, which is its own small project on mixed Windows and macOS teams, the SafeNet Authentication Client guide covers the failure modes. And the token password matters more than people expect: most tokens lock permanently after a set number of wrong attempts, and a locked token with no administrator password is a dead certificate, not a support ticket.

    Teams that survive on a token almost always stop passing it around within a few months and leave it plugged into one machine, usually a build server in a locked room. That is not a failure of discipline. It is the token pattern quietly turning into the signing-host pattern, which is where this article ends up too.

    Cloud signing: one certificate, one session

    Cloud signing removes the physical object and replaces it with a session, which solves the geography problem and not the concurrency one. The key lives in the certificate authority's HSM; a desktop agent presents it to your machine as a virtual smart card; a mobile app supplies the one-time code that opens the session. Anyone with the account credentials and the paired phone can sign from anywhere, which is a real gain for a distributed team.

    The limit people miss is that the session is singular. As of August 2026, a Certum SimplySign Desktop session runs for up to two hours and cannot be held simultaneously on two machines, so a second developer signing in takes the session rather than joining it. There is also a usage ceiling of 5,000 signatures a month on Certum's cloud code signing products, generous for releases, easy to burn through if you wire signing into every commit.

    Two developers who both need to sign on a Thursday afternoon are therefore taking turns, the same as with a token. The difference is that taking turns no longer requires walking anywhere. For small teams that is often enough, and it is why cloud delivery suits two to four people who release on different days. The full storage comparison lives in cloud code signing vs USB tokens.

    The four patterns teams actually use

    Every team sharing one certificate ends up in one of four arrangements, and the column that separates them is not cost or security posture but whether two people can sign at the same moment. Three of the four say no. That single fact drives more release-day friction than any other property of code signing.

    The four ways development teams share one code signing certificate, compared by key count, concurrent signing and team sizeA four-row comparison panel. Passing one USB token between machines uses one key, allows no concurrent signing and suits one or two developers. Buying one certificate per developer uses one key each, allows concurrent signing and suits teams that are willing to split their publisher reputation. Cloud signing through a shared account uses one key, allows no concurrent signing because only one session may be open at a time, and suits small teams that release from more than one location. The fourth row, highlighted in gold, is a signing host or managed signing service: one key, requests queued so any number of callers can submit work, and it is the only row that keeps working as the team grows. A footer notes that the concurrency column is the one teams discover on release day.Four ways to share one certificatePATTERNKEYSTWO PEOPLE AT ONCE?FITSPass the token aroundunplug, walk, plug in1No, one machine1-2 devsOne certificate eachsplits SmartScreen reputation1 eachYesrarely worth itShared cloud certificateone session, handed over1No, one session2-4 devsSigning host or serviceartifacts in, signatures out1Yes, requests queueany sizeThe concurrency column is the one nobody checks at purchase and everybody discovers on the afternoon of a release.
    Rows one and three both hold a single key and both stall a second signer, which is why moving from token to cloud rarely fixes the problem people bought it to fix.
    PatternWhat it costsWhere it breaks
    Pass the token aroundNothing extra, plus middleware on every machineRemote colleagues, and the day the holder is on leave
    One certificate eachA full order, validation and device per developerPublisher reputation splits, and so does the renewal workload
    Shared cloud certificateShared credentials and a paired phone to manageTwo people signing at once; one session exists
    Signing host or serviceA machine to run it and a day to set it upNothing, until the host itself needs looking after

    Row two is the one people reach for instinctively and the one worth resisting. It is the only row that buys concurrency with money instead of with design, and the thing it spends is not really money, it is the publisher reputation your users experience as the absence of a warning dialog. That trade is unpacked further down.

    Sign artifacts, not workstations

    The pattern that scales inverts the problem. Instead of moving the key to whoever needs to sign, you move the artifact to wherever the key already is. One machine holds the token or the cloud session, accepts unsigned files from developers and pipelines, signs them, timestamps them and hands them back. Nobody else ever touches the hardware.

    How a central signing host lets a whole team sign with one hardware key without any developer holding itA left-to-right flow. On the left, three sources submit unsigned artifacts: a developer workstation, a continuous integration pipeline and a release manager. They all send to a single signing host in the middle, highlighted in gold, which holds the certified hardware and the only session. Inside the host, three steps run in order: check that the caller is allowed to sign, sign the artifact using the hardware key, and add a timestamp from a timestamp authority. On the right the signed and timestamped artifact returns to the caller, and a separate audit log records who asked for each signature. A footer notes that the key never travels, the timestamp keeps signatures valid after the certificate expires, and the audit log is the part a token handed round a room can never produce.Nobody holds the key. Everybody can get a signature.UNSIGNED ARTIFACTSdeveloper laptopapp.exeCI pipelinesetup.msirelease managerupdate.dllSIGNING HOSTholds the token or session1 · is this caller allowed?2 · sign with the hardware key3 · add an RFC 3161 timestampsigned artifactback to the calleraudit logwho signed what, whenThe key stays in one place, the timestamp keeps every signature valid past expiry,and the log answers the question a token passed around a room never can: who signed this?
    Step three is easy to skip and expensive to skip: without a timestamp, every signature the team produces dies with the certificate.

    The Code Signing Baseline Requirements even name this shape. A Signing Service is defined there as an organisation that generates the key pair and securely manages the private key on behalf of a subscriber, with its own obligations for protecting that key. Managed platforms sell exactly this, and a build machine in your own office running the same idea is the do-it-yourself version.

    Three things fall out of it that no other pattern gives you. Requests queue instead of colliding, so two developers submitting at once both get signatures. There is a log of who asked for what, which is the question a token passed around a room can never answer after an incident. And the signing step becomes scriptable, which is the doorway to the setups described in code signing in CI/CD.

    One step inside the host is not optional. Timestamping the signature with an RFC 3161 authority is what keeps signed software validating after the certificate expires; skip it and every artifact your team shipped stops verifying on the expiry date. With 460-day certificates that date is now barely over a year from issuance, which makes timestamping more load-bearing than it has ever been.

    What a second certificate costs in SmartScreen

    Buying one certificate per developer looks like the clean fix, and it has a hidden price that is not on the invoice. Windows SmartScreen builds publisher reputation against the signing certificate. Four certificates means four reputations climbing from zero at a quarter of the pace, and four groups of users seeing the unknown-publisher warning for longer than they otherwise would.

    Microsoft provides no supported way to transfer reputation from one certificate to another, even when the organisation, the publisher name and the certificate authority are identical. Publishers discover this most often at renewal: a renewed certificate is a new certificate with a new key, and files signed with it start rebuilding reputation from scratch while previously shipped files keep the file-level history they already earned. What that looks like to users is covered in SmartScreen publisher reputation.

    Concentrating every release behind one certificate is therefore not only cheaper to administer, it is what makes the reputation curve climb at all. A team that splits its signing across four certificates is asking Microsoft to form four separate opinions about the same company, using a quarter of the evidence each.

    460 days, multiplied by the number of tokens

    Under CA/Browser Forum ballot CSC-31, code signing certificates issued on or after 1 March 2026 max out at 460 days, down from about three years. Every certificate a team holds now needs a validation round, a fresh key on hardware and a re-provisioning step roughly every fifteen months. That arithmetic is what punishes the certificate-per-developer pattern.

    What the 460-day code signing validity limit costs a team with one shared certificate compared with a team holding one certificate per developerTwo rows compare five years of renewals under the 460-day maximum validity that applies to code signing certificates issued on or after 1 March 2026. The upper row, one shared certificate, shows four renewal events across five years: four validation rounds, four hardware re-provisioning steps and four SmartScreen reputation restarts. The lower row, four certificates for four developers, shows the same four renewal points but sixteen validation rounds, sixteen hardware steps and sixteen reputation restarts, and is marked as the expensive option. A gold note underneath states that publisher reputation does not transfer to a renewed certificate, so the reputation cost is paid on every renewal and multiplied by the number of certificates held.460 days, five years, and the number of certificates you holdONE SHARED CERTIFICATEissue460 d920 d1380 d1840 d4 renewals · 4 validation rounds · 4 hardware steps · 4 reputation restartsFOUR CERTIFICATES, ONE PER DEVELOPER16 validation rounds · 16 hardware steps · 16 reputation restartsSame four dates in the calendar. Four times the work behind each one.SmartScreen reputation does not carry over to a renewed certificate.You pay that cost at every renewal, multiplied by every certificate you decided to hold.
    The 460-day limit turned certificate-per-developer from a mildly wasteful habit into a recurring tax you pay in user warnings.

    One shared certificate over five years is four renewals. Four certificates over the same five years is sixteen, sixteen validation rounds, sixteen hardware provisioning steps and sixteen reputation restarts, for a team that has not grown. The dates in the calendar are the same; the work behind each one is multiplied by a number you chose at purchase.

    There is an operational trap here too. A renewal produces a new certificate on new hardware, so any signing host, script or pipeline that pins a certificate thumbprint needs updating on the day. Doing that once is a calendar entry; doing it four times across four developers' machines is how a release ends up signed with a certificate that expired last week. The renewal mechanics are set out in code signing certificate renewal.

    Which pattern fits your team

    Team size settles this faster than any security argument, because the constraint is concurrency and concurrency is a function of how many people ship. Count the people who actually produce a release, not the people who can build the project. The number is usually smaller than expected, and it points at one row.

    • One or two developers, same office. A token is fine. Keep it in one machine, agree who holds it, and write the administrator password down somewhere that survives that person leaving.
    • Two to four developers, different locations. Cloud delivery. Everyone can reach it, nobody posts anything, and taking turns on the session is a mild inconvenience rather than a blocker.
    • Five or more, or any pipeline that signs. A signing host holding one certificate, with the team submitting artifacts to it. This is also the answer whenever signing has to happen without a person present.
    • Genuinely separate products or legal entities. Separate certificates, deliberately. Reputation splitting is the point here rather than the cost, because you want the identities to be distinct.

    Whichever row fits, decide it before you order rather than after, because the storage form is fixed at issuance and moving from a token to cloud delivery mid-term means a new certificate. If you want the shape sanity-checked against how your team releases, ask our team before you buy; it is a five-minute conversation that saves a reissue.

    Frequently asked questions

    Frequently Asked Questions

    Get instant answers to common questions about SSL certificates and our services.

    Still Have Questions?

    Our SSL experts are available 24/7 to help with any questions about certificates, installation, or technical issues.

    Related reading