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

时间:2016-02-15 12:14:37

标签: azure ssl csr azure-web-app-service

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

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

当我谷歌时,我发现有关其中的信息不一致,无法生成csr文件。

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

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

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

6 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:8)

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(点击高级工具)来打开文件并复制内容。

答案 2 :(得分:7)

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

有关详细信息,请查看官方文档enable HTTPS for an app in Azure App Service

答案 3 :(得分:5)

不是手动执行,而是选择“App Certificate Service”的额外服务,它将为您提供购买SSL证书然后将其绑定到您的应用程序的向导。它比手工生成CSR要简单快捷,而且混淆也少得多。文档很冗长,并不清楚我们是否应该远程进入服务器并在那里生成CSR等,所以我强烈建议通过App Certificate Service进行。

答案 4 :(得分:3)

其他人对这些事实提供了有价值的见解:

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

也许我错过了什么,但我没有看到答案:

  1. 您为什么要(甚至应该)在目标计算机上生成CSR?
  2. 为什么你真的不必这样做?
  3. 我回答这两个问题的方法我将从事实开始,生成CSR实际上是一个过程,产生两个工件,其中明显的部分 - 证书请求 - 对于这个问题可能不那么重要。更重要的一个,实际上也必须首先是生成的RSA密钥对,其中公共部分用于CSR请求,私有部分是使用的整个目标的关键部分。证书。

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

    问题1的答案来自私钥的关键特性,该特征是在该过程中生成的。这个关键特征是它应该保密。理想的是只有证书身份的唯一用户才能使用它。那个"用户"将是目标服务(Web服务器)。当您在其他地方生成密钥时,您有责任在该环境中保护密钥并传输到目标。这通常是不必要的风险。建议的解决方案通常是在目标证书/密钥存储区中生成密钥,并使用私钥保护,以防止从存储中提取(导出)私钥。即使是目标服务(Web服务器)实际上也无法提取/读取它(但能够使用它)。由于密钥对是在CSR创建过程中生成的,这意味着应该在该存储所在的位置执行此过程,并通过该存储功能执行。这应该回答这个问题。另外,DigiCert工具以及IIS管理器UI正在使用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,它提到了另外三种生成CSR的方法/工具,其中第一个(使用Microsoft管理控制台中的“证书”管理单元)实际上允许您将私钥标记为不可导出。

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

答案 5 :(得分:0)

例如,在命令行中使用本地计算机中的ssl进行操作:

  • 创建csr: openssl req -new -newkey rsa:2048 -nodes -keyout yourprivate.key -out yourdomainname.csr

在这里您已经生成了crt和bundle文件:

  • 下一步创建pfx: openssl pkcs12 -export -out certificate.pfx -inkey yourprivate.key -innameofyourcertfile.crt -certfile nameofyourtcacertfile.ca-bundle

在您可以将certificate.pfx文件上传到Azure App Services并绑定到自定义域之后

您必须购买裸域和www域的证书并进行设置,因为Azure当前仅为www域提供免费的托管证书。