SSL certificates can be valid for at most 199 days. From 15 March 2027 the limit becomes 99 days. Read more →

Sectigo cross-sign on Windows Server

Sectigo issues every new TLS certificate from Sectigo Public Server Authentication Root R46 (RSA) and E46 (ECC). Clients that lack that root can only validate through the cross-signed certificate up to USERTrust RSA. Windows Server sends that chain only once the new root has been taken out of service locally.

The guide covers PositiveSSL, EssentialSSL, InstantSSL and Sectigo EV, across IIS, Exchange, RD Gateway, AD FS, Web Application Proxy, SQL Server, NPS and LDAPS.

Do you need this?

Sectigo moved issuance to R46 and E46 by validation level: EV on 15 April 2025, OV on 15 May 2025 and DV on 2 June 2025. Certificates issued before the date that applies to your product still chain up to USERTrust RSA, and there is nothing for you to do.

If the server sends the short chain to R46, these clients fail:

  • iOS and iPadOS before 17.4 and macOS before 14.4. The root entered the Apple list in March 2024, so an iPhone X that cannot be updated further never receives it.
  • Android 13 and older. The root reached AOSP with Android 15, and Android 14 through the Mainline update of Conscrypt.
  • Java installations that never received the July 2025 update (8u461, 11.0.28, 17.0.16, 21.0.8).
  • Windows machines without outbound internet access, which cannot fetch new roots from Windows Update.
  • Embedded equipment, payment terminals, printers and industrial devices with a fixed trust store.

On Linux you simply add the cross-signed certificate to the chain file after the intermediate and reload the web server. The rest of this guide is about Windows, where Schannel builds the chain itself.

The two files you need

You need both the issuing intermediate and the cross-sign certificate. The intermediate binds your certificate to R46, and the cross-sign binds R46 to USERTrust RSA. Miss either one and the chain breaks.

1. Issuing intermediate (R36)

Pick the one matching your validation level. The name appears in your certificate Issuer field.

  • DV: Sectigo Public Server Authentication CA DV R36
  • OV: Sectigo Public Server Authentication CA OV R36
  • EV: Sectigo Public Server Authentication CA EV R36
  • ECC: the corresponding E36 variants

The file is in the certificate bundle you download from the FairSSL control panel, and on the Sectigo overview of roots and issuing CAs.

2. Cross-sign towards the old root

After downloading, confirm that Subject is Sectigo Public Server Authentication Root R46 and Issuer is USERTrust RSA Certification Authority. If Subject and Issuer match, you downloaded the root itself rather than the cross-sign.

FairSSL ships the long chain by default. If you download the certificate bundle from the control panel or fetch it over our ACME server, it already contains both the R36 intermediate and the cross-sign certificate, so you can skip the download step.

Procedure on Windows Server

1. Open the machine certificate store

Run certlm.msc from a command line started as administrator. Alternatively: Win+R, mmc, File → Add/Remove Snap-in, choose Certificates, Computer account, Local computer. The machine store is what matters. Certificates in the user store take no part in the chain the server sends.

2. Import the issuing intermediate

  1. Expand Intermediate Certification Authorities and click the Certificates subfolder.
  2. Right-click → All Tasks → Import.
  3. Select the R36 file. Switch the file type to All Files (*.*) if it does not show.
  4. Confirm the store is Intermediate Certification AuthoritiesFinish.

3. Import the cross-sign certificate

Repeat step 2 with SectigoPublicServerAuthenticationRootR46_USERTrust.crt. The file belongs in Intermediate Certification Authorities, not in Trusted Root. It is technically an intermediate, because it was signed by someone else.

Then confirm that USERTrust RSA Certification Authority is present in Trusted Root Certification Authorities. Without the old root the server cannot build the long chain. The root ships with every maintained Windows version.

4. Quarantine the new Sectigo root

As long as Sectigo Public Server Authentication Root R46 is active in Trusted Root, Schannel builds the short chain and sends it. The cross-sign certificate then sits unused in the Intermediate store.

Option A: move the root into the Disallowed store

Sectigo publishes two reg files for this, IISFix-MoveSectigoSelfSignedRoots-Disallowed.reg and IISFix-MoveSectigoSelfSignedRoots-Restore.reg, in their article on IIS certificates that are not widely trusted. The reg file moves R46 and E46 into the Disallowed store, where automatic root update cannot put them back.

The manual equivalent: right-click Untrusted CertificatesCertificatesAll Tasks → Import and select the R46 root file.

Option B: disable all purposes

  1. Go to Trusted Root Certification Authorities → Certificates and find Sectigo Public Server Authentication Root R46.
  2. Double-click and confirm on the Details tab that Subject and Issuer match. That identifies the root rather than the cross-sign.
  3. Right-click → PropertiesGeneral tab → Disable all purposes for this certificateOK. Some sources say clearing Server Authentication alone under Enable only the following purposes is enough. We have not confirmed that.

Never delete the root. Microsoft writes in KB 2831004: "if the Turn off Automatic Root Certificates Update Group Policy setting is disabled or not configured on the server, the certificate ... you don't want to use may be enabled or installed when the next chain building occurs." A deleted root is fetched again from Windows Update at the next chain build. The difference between the two options is durability: automatic root update cannot touch the Disallowed store, while the purpose flags in Trusted Root can be set back. Both apply only to the server you change, and on that server they affect everything that would otherwise validate up to that root. A certificate with another way up, through the cross certificate to the older root for instance, still validates.

5. Re-export the PFX with its chain and rebind

Some services hold on to the chain that was in the PFX the certificate was imported from. Export the certificate again with the full chain and bind it to the service anew.

$pw = Read-Host -AsSecureString "PFX password"
Export-PfxCertificate -Cert Cert:\LocalMachine\My\<THUMBPRINT> `
  -FilePath C:\temp\server-with-chain.pfx -Password $pw -ChainOption BuildChain

-ChainOption BuildChain builds the chain from the machine stores, that is, after the root has been quarantined. Import the PFX again and bind it to the service that uses the certificate.

6. Restart

Chain data is cached in the process that built the chain, and in lsass and HTTP.SYS. A full Windows restart is the only way to clear all of it. Restarting the individual role does not reach the Schannel chain cache, so the service can answer with the old chain afterwards and look as though the change did not work. Plan a restart window.

The change applies to the whole machine. If the server runs both IIS and AD FS, you change the chain for both. Run the verification against each service and port, not only against port 443.

Verification

certutil -verify, certutil -verifystore and Test-Certificate show the server own view of the chain. They say nothing about what HTTP.SYS or Schannel actually sends. Verify from the outside.

openssl s_client -connect your-domain.com:443 -servername your-domain.com -showcerts </dev/null \
  | grep -E "^ *[0-9] s:|^ *i:"

You should see three certificates: your server certificate, Sectigo Public Server Authentication CA ... R36 and Sectigo Public Server Authentication Root R46. The i: line of the last certificate must read USERTrust RSA Certification Authority. If the last link shows R46 in both subject and issuer, the server is still sending the short chain.

  • The FairSSL SSL Scanner shows the full delivered chain and the root it points at.
  • Internal servers with no access from the internet: run testssl.sh from another machine on the network.

SSL Labs alone is not enough. SSL Labs trusts R46 itself and awards an A on the short chain while an Android 13 phone fails. Read the chain list in the report rather than the grade. The flags "Chain issues: Incomplete" and "Contains anchor" carry information, an A does not.

Back to the default

Run the Sectigo IISFix-MoveSectigoSelfSignedRoots-Restore.reg, or remove the root from Untrusted Certificates and set it back to Enable all purposes in Trusted Root. Reboot the server. The cross-sign certificate can stay in the Intermediate store, because Schannel picks the short chain again as soon as the root is active.

Frequently asked questions about the Sectigo cross-sign

Find answers to the most common questions about SSL certificates and FairSSL.

Every Sectigo certificate issued after the 2025 migration dates: PositiveSSL and EssentialSSL (DV, moved 2 June 2025), InstantSSL and Sectigo OV (moved 15 May 2025) and Sectigo EV (moved 15 April 2025). Certificates issued before the date that applies to your validation level still chain up to USERTrust RSA and need nothing.
No. Windows fetches root certificates from Windows Update during chain building, and a deleted root is reinstalled. Use the Sectigo reg file that moves the root into Untrusted Certificates, or disable all purposes on the root. Only the Disallowed store survives automatic root update. The purpose flags live on the certificate in Trusted Root, and KB 2831004 says the root may be enabled again at the next chain build.
Only for the algorithm you issue from. If you order RSA certificates, as most Windows installations do, you need R46 signed by USERTrust. If you ordered ECDSA certificates, you need E46 signed by USERTrust ECC instead. Open the certificate in MMC and look under Details at Public key if you are unsure.
The file is valid until 18 January 2038, but Sectigo states that Chrome and Mozilla remove trust in USERTrust RSA and USERTrust ECC on 15 April 2027. After that date the chain still helps older clients that receive no updates, but it adds nothing in an updated browser. Treat the configuration as temporary and plan to replace the clients that require it.
SSL Labs trusts Sectigo Public Server Authentication Root R46 itself and validates the short chain without trouble. The grade says nothing about an Android 13 device that lacks the root. Look at the chain in the report instead, or run openssl s_client -showcerts and check who issued the last certificate.
Yes. Run the Sectigo restore reg file, or set the root back to Enable all purposes, and reboot the server. The cross-sign certificate can stay in the Intermediate store. Windows picks the short chain again as soon as the root is active.

Want us to set up the long chain for you?

Create a free account and order your first certificate. A DV certificate is issued in under 2 minutes.