=pod =head1 NAME openssl-verify, verify - Utility to verify certificates =head1 SYNOPSIS B B [B<-help>] [B<-CAfile file>] [B<-CApath directory>] [B<-no-CAfile>] [B<-no-CApath>] [B<-allow_proxy_certs>] [B<-attime timestamp>] [B<-check_ss_sig>] [B<-CRLfile file>] [B<-crl_download>] [B<-crl_check>] [B<-crl_check_all>] [B<-engine id>] [B<-explicit_policy>] [B<-extended_crl>] [B<-ignore_critical>] [B<-inhibit_any>] [B<-inhibit_map>] [B<-nameopt option>] [B<-no_check_time>] [B<-partial_chain>] [B<-policy arg>] [B<-policy_check>] [B<-policy_print>] [B<-purpose purpose>] [B<-suiteB_128>] [B<-suiteB_128_only>] [B<-suiteB_192>] [B<-trusted_first>] [B<-no_alt_chains>] [B<-untrusted file>] [B<-trusted file>] [B<-use_deltas>] [B<-verbose>] [B<-auth_level level>] [B<-verify_depth num>] [B<-verify_email email>] [B<-verify_hostname hostname>] [B<-verify_ip ip>] [B<-verify_name name>] [B<-x509_strict>] [B<-show_chain>] [B<-sm2-id string>] [B<-sm2-hex-id hex-string>] [B<->] [certificates] =head1 DESCRIPTION The B command verifies certificate chains. =head1 OPTIONS =over 4 =item B<-help> Print out a usage message. =item B<-CAfile file> A B of trusted certificates. The file should contain one or more certificates in PEM format. =item B<-CApath directory> A directory of trusted certificates. The certificates should have names of the form: hash.0 or have symbolic links to them of this form ("hash" is the hashed certificate subject name: see the B<-hash> option of the B utility). Under Unix the B script will automatically create symbolic links to a directory of certificates. =item B<-no-CAfile> Do not load the trusted CA certificates from the default file location. =item B<-no-CApath> Do not load the trusted CA certificates from the default directory location. =item B<-allow_proxy_certs> Allow the verification of proxy certificates. =item B<-attime timestamp> Perform validation checks using time specified by B and not current system time. B is the number of seconds since 01.01.1970 (UNIX time). =item B<-check_ss_sig> Verify the signature on the self-signed root CA. This is disabled by default because it doesn't add any security. =item B<-CRLfile file> The B should contain one or more CRLs in PEM format. This option can be specified more than once to include CRLs from multiple B. =item B<-crl_download> Attempt to download CRL information for this certificate. =item B<-crl_check> Checks end entity certificate validity by attempting to look up a valid CRL. If a valid CRL cannot be found an error occurs. =item B<-crl_check_all> Checks the validity of B certificates in the chain by attempting to look up valid CRLs. =item B<-engine id> Specifying an engine B will cause L to attempt to load the specified engine. The engine will then be set as the default for all its supported algorithms. If you want to load certificates or CRLs that require engine support via any of the B<-trusted>, B<-untrusted> or B<-CRLfile> options, the B<-engine> option must be specified before those options. =item B<-explicit_policy> Set policy variable require-explicit-policy (see RFC5280). =item B<-extended_crl> Enable extended CRL features such as indirect CRLs and alternate CRL signing keys. =item B<-ignore_critical> Normally if an unhandled critical extension is present which is not supported by OpenSSL the certificate is rejected (as required by RFC5280). If this option is set critical extensions are ignored. =item B<-inhibit_any> Set policy variable inhibit-any-policy (see RFC5280). =item B<-inhibit_map> Set policy variable inhibit-policy-mapping (see RFC5280). =item B<-nameopt option> Option which determines how the subject or issuer names are displayed. The B