如何为azure Web应用程序创建csr文件

Hel*_*rld 26 ssl csr azure azure-web-app-service

我需要创建一个csr文件,以便将其提供给某人.

csr文件用于Azure应用程序的SSL证书.

当我谷歌时,我发现有关生成csr文件的位置的信息不一致.

一些消息来源说:我必须在运行Web应用程序的服务器上创建csr文件.

在我的情况下,天蓝色的服务器是未知的.我不能在那里跑任何东西......

或者可以在我的本地电脑上使用所有公司数据创建csr +使用自定义域填写主题?

Mas*_*240 18

Digicert提供了有关如何为Azure站点创建证书的工具和明确说明.

https://www.digicert.com/csr-creation-ssl-installation-windows-azure-website.htm

  • 此工具不仅适用于digicert,也适用于其他SSL供应商.我用Comodo/InstantSSL.如果您在安装后仍然遇到问题,Digicert还提供了一个很好的验证工具 - https://www.digicert.com/help/ (3认同)
  • 我认为OP要求在Azure上作为应用程序服务运行的网站没有帮助。 (2认同)

Sas*_*ann 9

您可以在Certreq.exe或OpenSSL工具的帮助下创建一个cer文件.

有关更多详细信息,请查看官方文档,了解如何在Azure App Service中为应用程序启用HTTPS.

  • 我的问题是我是否必须在azure服务器上生成csr文件?我只能访问MS ...所以教程说...但是那怎么工作? (3认同)
  • 我听说csr文件包含生成(用于)csr的计算机的指纹,因此我假设我必须在azure服务器上创建csr。但是使用我的标准订阅,我没有root访问权限。我无法在azure服务器上运行certreq.exe! (2认同)
  • 据我所知,证书中没有存储任何机器详细信息.即使发生这种情况,证书也可用于Web应用程序. (2认同)

Pet*_*r W 9

openssl安装在控制台中,您可以在那里生成文件.您必须在原始命令中指定openssl所需的所有设置,因为它应该提示您一些问题,但它目前不起作用.所以像这样:

openssl req -new -newkey rsa:2048 -nodes -out yoursite_com.csr -keyout yoursite_com.key -subj "/C=US/ST=California/L=San Francisco/O=Your Site Inc./OU=Engineering/CN=yoursite.com"

一旦你有了你的csr你无法从控制台打开它,你实际上必须使用Kudu(点击高级工具)打开文件并复制内容.


Hil*_*ion 6

其他人提供了关于这些事实的宝贵见解:

  • 您可以(在 Azure Web App 的情况下,基本上必须)在与目标服务器(将使用证书的服务器)不同的机器上生成 CSR。
  • 可用于生成 CSR 的工具(例如 openssl、DigiCert 实用程序)。
  • 另一种获取 Azure Web App 证书的方法(Azure App Certificate Service)。

也许我遗漏了一些东西,但我没有看到以下问题的答案:

  1. 为什么要(甚至应该)在目标机器上生成 CSR?
  2. 为什么你真的不需要?

我回答这两个问题的方法首先是这样一个事实,即生成 CSR 实际上是一个过程,它产生两个工件,其中显而易见的部分 - 证书请求 - 可能对这个问题不太重要。更重要的,实际上也必须首先出现,是生成 RSA 密钥对,其中公共部分用于 CSR 请求,私有部分是使用整个目标的关键部分证书。

尽管密钥对通常是使用基于硬件的熵数据生成的,因此特定于您使用的机器,但结果(密钥对)可以在任何地方使用,因为密钥值仅在数学上相互绑定。CSR 内容基于公钥和所请求证书的主题,所以同样,里面没有任何东西,不能在其他地方使用。这解释了为什么在不同的机器/服务上实际生成 CSR(和密钥)没有技术限制,而不是实际使用它的机器/服务,因此解决了问题 2。

问题 1 的答案来自私钥的关键特征,私钥是在此过程中生成的。这个关键特征是它应该保持私密性。理想的情况是只有证书身份的唯一用户才能使用它。该“用户”将是目标服务(Web 服务器)。当您在其他地方生成密钥时,您有责任在该环境中以及在传输到目标的过程中保护它。这通常是不必要的风险。建议的解决方案通常是在目标证书/密钥存储中生成密钥,并带有私钥保护,以防止从存储中提取(导出)私钥。甚至目标服务(Web 服务器)实际上也无法提取/读取它(但可以使用它)。由于密钥对是在 CSR 创建过程中生成的,这意味着该过程应该在该商店所在的位置执行,并由该商店功能执行。这应该回答这个问题。附带说明一下,DigiCert 工具和 IIS 管理器 UI 正在使用 Windows 证书存储,它们确实为私钥添加了保护层,但它们确实将密钥标记为可导出,从而允许提取密钥。OpenSSL 工具(在 Windows 上)在 Windows 证书存储区之外生成密钥(作为文件),因此您可以轻松访问它,这不是那么安全。但他们确实将密钥标记为可导出,这允许提取密钥。OpenSSL 工具(在 Windows 上)在 Windows 证书存储区之外生成密钥(作为文件),因此您可以轻松访问它,这不是那么安全。但他们确实将密钥标记为可导出,这允许提取密钥。OpenSSL 工具(在 Windows 上)在 Windows 证书存储区之外生成密钥(作为文件),因此您可以轻松访问它,这不是那么安全。

我找到了这篇文章:https : //www.namecheap.com/support/knowledgebase/article.aspx/9854//how-to-generate-a-csr-code-on-a-windowsbased-server-without- iis-manager,其中提到了另外 3 种生成 CSR 的方法/工具,其中第一个(使用 Microsoft 管理控制台中的证书管理单元)实际上允许您将私钥标记为不可导出。

当然,在您的情况下,获取(例如导出)私钥的能力至关重要,因为您必须在其他地方生成 CSR,因为 Azure Web App 证书存储目前没有允许生成 CSR 的功能。


Han*_*ror 5

您可以选择搜索“ App证书服务”的其他服务,而不是手动进行操作,这将为您提供向导,供您购买SSL证书,然后将其绑定到您的应用程序。它比手工生成CSR更加简单和快捷,并且也减少了混乱。该文档非常冗长,并且对于我们是否应该远程进入服务器并在其中生成CSR尚不清楚,所以我强烈建议通过App Certificate Service进行操作。