使用现有证书进行 SSL 签名证书

使用现有证书进行 SSL 签名证书

我有来自的 SSL 证书sslforfree。我有ca-bundlecertificate它的private密钥。

我想为不同的子域创建自己的证书。我希望能够以某种方式使用现有证书对该证书进行签名,以便它能够通过浏览器、邮件客户端和其他客户端进行的所有 SSL 检查。

我完成了几十个教程,但要么我错过了重要的细节,要么这些教程不是我想要的。

有人能帮助我吗?我该如何使用openssl来签署我的新证书CentOS 7

答案1

从技术上讲,您可以这样做,但没有人会信任这些证书。您的 SSL 证书*不允许*签署其他证书。

如果您查看证书,您可能会发现Basic Constraints证书扩展,其中说明了主题类型:最终实体或 CA。isCA位将设置为 0,表示证书持有者是最终实体。证书验证代码将严格检查此字段,如果发现最终实体证书被用于签署其他证书,则会自动拒绝这些证书。供参考:RFC 5280§4.2.1.9

答案2

使用以下命令查看您的证书openssl x509 -text -in filename。查看CA:假? 这是一个标志,表示该证书不能用作 CA,或签署从属证书。

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            ...
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
        Validity
            Not Before: Jul  8 22:26:53 2019 GMT
            Not After : Oct  6 22:26:53 2019 GMT
        ...
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE

没有受信任根的 CA 会向您提供启用了该功能的证书。如果他们这样做了,您将能够对世界上的任何人进行 MITM 攻击。

我想为不同的子域创建自己的证书。

只需使用 letsencrypt。您可以获得所有想要的免费证书,这些证书可以通过 DNS 或 HTTP 质询进行验证。您可以使用官方客户端或第三方客户端。Letsencrypt 有很多易于使用的客户端。

相关内容