在AWS Windows实例中获取SSL的CSR文件

时间:2014-08-13 21:05:59

标签: ssl amazon-ec2 csr

我需要获得CSR以使用godaddy.com完成SSL订单。 我在亚马逊AWS实例中运行Windows 2012。服务器是Express.js。

Domain指向该实例IP,一切正常

我想我必须从控制台或类似的东西创建该密钥。这里的问题是我从来没有这样做过,而且根本没有错误的地方。

我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

  

我需要获得CSR ...如何创建CSR?

由于您使用的是Windows,我会下载并安装Shining Light's Win32 OpenSSL。它是Windows平台的预构建OpenSSL。

然后,我会发出以下命令。它创建了一个新密钥,它一下子就生成了签名请求:

openssl req -config example-com.conf -new -newkey rsa:2048 -nodes \
    -keyout example-com.key.pem -days 365 -out example-com.req.pem

请注意,有一个配置文件:example-com.conf。配置文件允许您执行诸如设置公共名称和设置主题备用名称之类的操作。您可以在Certificate with Extended Key Usage only works in Firefox找到该配置文件。

生成CSR后,请提交example-com.req.pem进行签名。

注意:您可能无法获得CSR中的所有内容。由CA来验证信息,调整您的请求,然后颁发证书。例如,如果您标记CA:true,那么您的CSR可能会被修改或拒绝,因为CA不希望您创建证书。

如果您的框架AWS实例是Windows映像,则需要创建PFX并将其导入相应的信任库。以下是创建PFX的方法。

你有什么:

  • example-com.cert.pem(签名证书,PEM编码)
  • example-com.key.pem(私钥,PEM编码)
  • ca-intermediate-cert.pem(从属CA,PEM编码)

你不需要的东西:

  • example-com.req.pem(CSR,因为您有签名证书)
  • ca-root-cert.pem(根CA证书)

您需要ca-intermediate-cert.pem,因为服务器必须使用服务器的证书发送它。发送所有所需的中间证书可以避免出现“哪个目录”问题。它是PKI中一个众所周知的问题,它意味着客户不知道在哪里寻找丢失的中间证书(他们应该去Verisign,还是应该去Digicert等)。但是,您不发送ca-root-cert.pem,因为客户端必须已拥有它并信任它。

首先,连接证书:

cat example-com.cert.pem > example-com.chain.pem
cat ca-intermediate-cert.pem >> example-com.chain.pem

其次,给出链和密钥创建PFX:

openssl pkcs12 -export -in example-com.chain.pem -inkey example-com.key.pem \
    -nodes -out example-com.chain.p12

第三,将其安装在信任库中。例如,请参阅MSDN上的Import a Server Certificate (IIS 7)

亚马逊可能在某处有类似的指示。