2016-02-15 81 views
14

我需要创建一个csr文件以将其提供给某人。如何为azure网络应用程序创建csr文件

csr文件用于天蓝色Web应用程序的SSL证书。

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

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

在我的情况下,Azure上的服务器是未知的。我不能在那里运行任何东西......

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

回答

5

您可以借助Certreq.exe或OpenSSL工具创建cer文件。

欲了解更多详情,请看官方文档如何enable HTTPS for an app in Azure App Service

+1

我的问题是我必须在Azure服务器上生成csr文件吗?我没有访问权限,只有MS ...所以教程说......但是这怎么能工作? – HelloWorld

+1

我听说csr文件包含生成csr(for)的机器的指纹,所以我假设我必须在azure服务器上创建csr。但是用我的标准订阅,我没有root权限。我无法在Azure服务器上运行certreq.exe! – HelloWorld

+0

您不必在azure上创建csr文件。事实上,你将无法做到。但之后您可以将完成的证书上传到天蓝色的Web应用程序。 –

2

而不是手动完成它,一个选项是通过额外的服务搜索“应用程序证书服务”,它将为您提供购买SSL证书的向导,然后将其绑定到您的应用程序。它比手动生成CSR更简单,更快捷,而且也不那么容易混淆。文档是冗长的,并且我们是否应该远程访问服务器并在那里生成CSR等方面并不十分清楚,所以我强烈建议通过App Certificate Service来完成。

4

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"

一旦你有你的企业社会责任,你不能从控制台打开它,你确实有使用捻(点击高级工具)来打开该文件并复制内容。

2

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

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

也许我失去了一些东西,但我没有看到上答案:

  1. 为什么你想(或者甚至应该)生成目标机器上的企业社会责任?
  2. 为什么你不需要?

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

虽然密钥对通常是使用基于硬件的熵数据生成的,但对于您所使用的机器而言是特定的,结果(密钥对)可以在任何地方使用,因为密钥值仅在数学上绑定到彼此。企业社会责任的内容是以公钥和申请证书的主体为基础的,所以再也没有什么内容可以在别处使用。这就解释了为什么在实际生成不同机器/服务上实际生成CSR(和密钥)方面没有技术限制,因此问题2得到了解决。

问题编号1的答案来自过程中生成的私钥的关键特征。这个关键特征是它应该保持私密。最理想的是只有证书身份的唯一用户才能使用它。该“用户”将是目标服务(网络服务器)。当您在别处生成密钥时,您有责任在该环境中保护该密钥并将其转移到目标上。这通常是不必要的风险。建议的解决方案通常是在目标证书/密钥存储中生成密钥,并使用私钥保护,这可以防止从存储中提取(导出)私钥。即使目标服务(网络服务器)实际上也无法提取/读取它(但能够使用它)。由于密钥对是在CSR创建过程中生成的,这意味着此过程应在该商店所在的位置以及该商店的功能中执行。这应该回答这个问题。值得注意的是,DigiCert工具以及IIS管理器用户界面正在使用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的功能。