Skip to main content
Prove the integration end to end: the CA answers, it issues a certificate, that certificate chains to your root, and its issuer is the HSM-backed intermediate. Run these commands on the CA host. step ca init wrote the root certificate into ~/.step there, so the step CLI already trusts the CA and the commands below use localhost.
Validating from a different machine is outside the scope of this guide. A remote client must first be given the CA root certificate and be configured to trust it. Refer to the Smallstep step-ca documentation for client bootstrap once this on-host validation passes.

Verify CA health

Shell
The response is:
Shell

Generate a one-time token

The JWK provisioner that step ca init created is unlocked by the CA password. Use the same password file, which the provisioner flag reads directly.
Shell
--provisioner-password-file takes the password you set with --password-file during step ca init, because that one password encrypted the provisioner key as well as the root key. Use the provisioner name you chose during step ca init; this guide uses admin@localhost.
The command sets $TOKEN and prints nothing. Confirm the variable is populated:
Shell

Issue a certificate

Shell
The response reports both files:
Shell
This request is what drives the appliance: the CA signed test.crt with the CryptoHub-resident key at this moment.

Confirm the issuer

Shell
The Issuer field is the HSM-backed intermediate CA:
Shell
Issuer: CryptoHub Smallstep Intermediate CA confirms the certificate was signed by the intermediate whose private key lives in the CryptoHub, not by the software intermediate that step ca init created.

Verify the certificate chain

Validate the chain independently with OpenSSL, which knows nothing about step-ca or PKCS #11.
Shell
The response is:
Shell

Confirm the appliance signed at issuance

The FXPKCS11 log inside the container records the Host API session that carried the signature. Its timestamps line up with the moment you ran step ca certificate.
Shell
The log shows a session opening to your CryptoHub on port 2001 and logging in, timestamped at the issuance you performed above:
Shell
Together, these checks close the loop. The CA is healthy, it issued a certificate that chains to your root, the issuer is the intermediate backed by CryptoHub, and the FXPKCS11 log proves the signature was produced on the appliance at issuance time. The integration is validated.