openssl - 关于 : PKCS7, X509 和 DER

标签 openssl

我是“密码学世界”的新手。我开始使用 OPENSSL。
我需要一些信息,基本上我确实有一些疑问。
我有一个 DER 格式的文件。我使用以下命令读取文件,
“openssl x509 -inform DER -in filename.der -text”我得到了我应该做的。

以下是我想知道的:

  • PKCS7、DER 和 X509 有什么区别?
    (我的理解是,DER是格式,X509是证书,PKCS7是标准)
  • 我写了一个测试文件,它接受 DER 文件并输出版本、序列号、主题、之前的有效日期和之后的有效日期,但我无法验证证书。以下是使用的 API。

    int i = X509_verify(X509 *x509, X509_get_pubkey(X509 *x509));
    但是 'i' 值是 'i' < 0(zero) 这就是为什么我遇到“签名验证问题”的原因。
    如何克服这一点?
  • 在我的测试文件中,我无法阅读“签名算法”、“主题公钥信息”、“X509v3 扩展”和“-----BEGIN CERTIFICATE-----”到“-----END”证书-----"

  • 请提供一些意见。

    提前致谢。
    开放Sid

    最佳答案

    PKCS#7 是 RSA Security 于 1993 年发布的加密标准,用于处理应用了加密的数据。它是如何安全地打包数据的标准。 PKCS#7 引用 X.509 标准,作为证书格式的来源。

    X.509 是 1998 年发布的范围广泛的安全标准文档,其中包括证书文件格式等。

    X.509 指定证书应使用 ASN.1(记录在 X.208 和现在的 X.608 中)标准的可分辨编码规则进行编码,该标准于 1984 年首次发布。

    所以,DER 说的是如何将一些字符串和数字源数据编码成二进制格式,
    X.509 说明哪些数据需要进入数字证书,以及
    PKCS#7 说明应该如何使用该证书来对消息进行数字签名。

    隐私增强邮件 - 在 OpenSSL 之前发布的某种工具 - 需要在电子邮件中传递 PKCS#7 “包装”数据,这些数据当时在仅支持 7 位 ASCII 字符的系统上进行交换 - “PEM”创建了使用标准Base64 对 PKCS#7 所需的 X.509 证书进行编码,并将 base64 存储在 -----BEGIN ???----- -----END ???----- where ?? ?可以是 RSA 私钥、PSA 公钥、证书等。

    关于openssl - 关于 : PKCS7, X509 和 DER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559103/

    相关文章:

    ssl - 如何执行 EV ssl 认证的验证过程

    使用超时时 Python OpenSSL 连接握手失败

    c++ - 如何在 Mac OSX 上的 Qt 中使用 pkcs12/pfx 成功执行 SSL 加密?

    nginx - 如何在 nginx 中配置 openssl 引擎 aes-ni

    c++ - 密码套件错误或未与 OpenSSL 服务器建立连接

    certificate - 具有主题备用名称的OpenSSL证书(版本3)

    c - 在 openSSL 中手动设置 AES key ?

    openssl - 尝试将 .pfx 转换为 .pem 时,Mac 验证错误 : invalid password?

    encryption - PBE-SHA1-3DES 使用 168 位三重 DES?

    github - 无法建立 SSL 连接,在配置 Github Self-Hosted Runner 时查看内部​​异常