Verify the certificate chain
With all the certificates created, you're ready to verify that you have a functional hybrid certificate chain.
Verify that the hybrid chain works using legacy cryptography.
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl verify -engine IQREngine -verbose -CAfile xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -untrusted dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem
You should see this output:
engine "IQREngine" set. rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem: OK
Verify that the hybrid certificate chain works using quantum-safe cryptography.
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509QSVerify -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -root xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -untrusted dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem -cert rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem
Which should provide this output:
engine "IQREngine" set. 2 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Root 1 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Test Intermediate CA 0 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=digicert.pqc Success!!
To verify all files were created, execute an
ls
command . If you were successful, you should see an output like this:configs dilithium_catalyst_mixed_chain_intermediate_private_key.pem dilithium_catalyst_mixed_chain_intermediate_public_key.pem dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_req.pem ecdsa_catalyst_mixed_chain_parameters.pem ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_certificate.pem ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_req.pem ecdsa_without_rainbow_catalyst_mixed_chain_private_key.pem ecdsa_without_rainbow_x509_catalyst_mixed_chain_certificate.pem ecdsa_without_rainbow_x509_catalyst_mixed_chain_req.pem ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem ecdsa_without_xmss_x509_catalyst_mixed_chain_root_certificate.pem ecdsa_without_xmss_x509_catalyst_mixed_chain_root_req.pem rainbow_catalyst_mixed_chain_private_key.pem rainbow_catalyst_mixed_chain_public_key.pem rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem rainbow_ecdsa_x509_catalyst_mixed_chain_server_req.pem xmss_catalyst_mixed_chain_root_private_key.pem xmss_catalyst_mixed_chain_root_private_key_state.bin xmss_catalyst_mixed_chain_root_public_key.pem xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem