X509 证书错误代码
【X509 certificate error codes】
由于 OpenSSL 报告的证书错误,多个功能可能会失败。在这种情况下,该函数会通过其回调提供一个 <Error>,该对象具有 code 属性,该属性可以取以下值之一:
【Multiple functions can fail due to certificate errors that are reported by
OpenSSL. In such a case, the function provides an <Error> via its callback that
has the property code which can take one of the following values:】
'UNABLE_TO_GET_ISSUER_CERT':无法获取颁发者证书。'UNABLE_TO_GET_CRL':无法获取证书撤销列表(CRL)。'UNABLE_TO_DECRYPT_CERT_SIGNATURE':无法解密证书的签名。'UNABLE_TO_DECRYPT_CRL_SIGNATURE':无法解密 CRL 的签名。'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY':无法解码发行者公钥。'CERT_SIGNATURE_FAILURE':证书签名失败。'CRL_SIGNATURE_FAILURE':CRL 签名失败。'CERT_NOT_YET_VALID':证书尚未生效。'CERT_HAS_EXPIRED':证书已过期。'CRL_NOT_YET_VALID':CRL 尚未生效。'CRL_HAS_EXPIRED':CRL 已过期。'ERROR_IN_CERT_NOT_BEFORE_FIELD':证书的 notBefore 字段格式错误。'ERROR_IN_CERT_NOT_AFTER_FIELD':证书的 notAfter 字段格式错误。'ERROR_IN_CRL_LAST_UPDATE_FIELD':CRL 的 lastUpdate 字段格式错误。'ERROR_IN_CRL_NEXT_UPDATE_FIELD':CRL 的 nextUpdate 字段格式错误。'OUT_OF_MEM':内存不足。'DEPTH_ZERO_SELF_SIGNED_CERT':自签名证书。'SELF_SIGNED_CERT_IN_CHAIN':证书链中存在自签名证书。'UNABLE_TO_GET_ISSUER_CERT_LOCALLY':无法获取本地颁发者证书。'UNABLE_TO_VERIFY_LEAF_SIGNATURE':无法验证第一个证书。'CERT_CHAIN_TOO_LONG':证书链过长。'CERT_REVOKED':证书已被吊销。'INVALID_CA':无效的 CA 证书。'PATH_LENGTH_EXCEEDED':路径长度超出限制。'INVALID_PURPOSE':证书用途不受支持。'CERT_UNTRUSTED':证书不受信任。'CERT_REJECTED':证书被拒绝。'HOSTNAME_MISMATCH':主机名不匹配。
当出现类似 UNABLE_TO_VERIFY_LEAF_SIGNATURE、DEPTH_ZERO_SELF_SIGNED_CERT 或 UNABLE_TO_GET_ISSUER_CERT 的证书错误时,Node.js 会附加一个提示,建议如果根 CA 已经在本地安装,可以尝试使用 --use-system-ca 标志运行,以引导开发者采取安全的解决方案,从而防止不安全的变通方法。
【When certificate errors like UNABLE_TO_VERIFY_LEAF_SIGNATURE,
DEPTH_ZERO_SELF_SIGNED_CERT, or UNABLE_TO_GET_ISSUER_CERT occur, Node.js
appends a hint suggesting that if the root CA is installed locally,
try running with the --use-system-ca flag to direct developers towards a
secure solution, to prevent unsafe workarounds.】