gpt4 book ai didi

ssl - 关于 CSR 和 SSL 证书的问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:15 26 4
gpt4 key购买 nike

我正在连接到外部服务器并制作 CSR 以从他们那里接收一些证书,对此我有一些疑问。

一些教程指出您应该保存私钥,因为这将在安装证书期间使用。但是,当使用 Windows 证书管理器 (certmgr.msc) 时,我认为它会在后台生成私钥,并且生成的 CSR 文件不包含任何私钥。所以在那种情况下,我根本无法访问任何私钥,除非我可以从稍后收到的证书中导出它?我还觉得安装证书不需要私钥,因为它只是导入到证书存储中?如果是这样的话,私钥除了生成公钥还有什么用吗?

我也想知道可以使用证书的位置。该证书似乎只能在创建 CSR 的服务器上使用。但是,我的应用程序将在 Azure 上运行,那么我如何才能获得可在云中使用的证书?

最后一个问题:证书提供者提供三个证书,一个根证书,一个中间证书和一个“实际”证书。这些不同证书的用途是什么?

感谢对此过程的任何见解或指导。那里有大量指南,但其中许多似乎在某种程度上相互矛盾。

最佳答案

(certmgr.msc) I think [] generates the private key under the hood,

正确。您生成 key CSR,将后者发送给 CA,然后(我们希望!)取回包含您的公钥和身份的证书(对于 SSL/TLS,您的身份是您的一个或多个域名) ,加上任何需要的链证书(通常是一个中间证书和一个根证书,但这可能会有所不同)。您将证书导入 certmgr,它将它与现有的、存储的但隐藏的私钥相匹配,以生成一个的 cert+privatekey,它现在是可见和可用的。

要在 Windows 程序(如 IIS)中使用它,您还需要 chain 证书,见下文,在您的商店中 - 对于这些只是证书而不是私钥(s),你没有也得不到。如果您使用已建立的公共(public) CA,如 Comodo、GoDaddy、LetsEncrypt,它们的根通常已经在您的商店中,如果您使用由您的雇主运行的 CA,它们的根可能已经在您的商店中用于其他电子邮件等原因;如果没有,你应该添加它。中间体可能已经在您的商店中,也可能不在您的商店中,如果没有,您应该添加它(它们)。

I was also under the impression that a private key is not needed for installation of the certificate as it is just imported into the certificate store?

需要的,但您没有提供它,因为它已经存在。

It seems that the certificate can only be used on the server that the CSR was created. However, my application will run on Azure so how can I get a certificate that can be used in the cloud?

最初,它只能在生成 CSR 和私钥的系统上使用。但是使用 certmgr,您可以将证书私钥的组合以及可选的证书链(导出向导称为“路径”)导出到 PKCS12/PFX 文件。该文件可以复制到其他 Windows 系统并导入到其他 Windows 系统和/或由其他类型的软件使用或导入到其他类型的软件,如 Java(例如 Tomcat 和 Jboss/Wildfly)、Apache、Nginx 等。

但是请注意,您可以使用该证书的一个或多个域名,或者可能与(单级)通配符匹配的一系列名称是在颁发证书时确定的,以后不能更改(除了通过获得新证书)。

The certificate provider supplies three certificates, one root, one intermediate and one "actual" certificate. What is the purpose of these different certificates?

证书颁发机构按层次结构排列。运行——尤其是保护——根 CA 既困难又昂贵。因此,终端实体(如您)的证书不是由根直接颁发的,而是由从属或中间 CA 颁发的。有时会有不止一级的下级或中级。因此,当您的服务器使用此证书来证明其身份时,为了让浏览器或其他客户端验证(并因此接受)您的证书,您需要提供一个“链” ' 的证书,每一个都由下一个签名,它将您的证书链接到受信任的根。正如我所说,一种中间体很常见;这意味着您的服务器需要发送自己的证书,该证书由中间 key 签名,加上由根 key 签名的中间证书。实际上不需要发送根,因为客户端已经在他们的信任库中拥有它,但它可能是,并且在使用它之前自己验证链也是可取的,为此你需要即使您不发送它,也有根。

关于ssl - 关于 CSR 和 SSL 证书的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58852971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com