首页 文章

将p7b转换为pfx for Azure

提问于
浏览
26

我正在尝试为Azure设置 endpoints .

我得到了一个.p7b文件,但我需要一个带有私钥的.pfx文件 .

有没有办法将我的.p7b转换为.pfx?

1 回答

  • 59

    好的, here is a rundown on the whole Azure SSL certificate rigmarole. 我've done this with GoDaddy (and more than a bit of help from one of their knowledgeable tech support guys). Also note that I'已在Windows 8 Pro上完成此操作;您的体验可能略有不同和/或您的里程可能会有所不同;-)

    付钱给CA(证书颁发机构)购买SSL证书 .

    Create CSR (Certificate Signing Request)

    现在,您需要创建一个CSR,这是您必须提供给CA的文本,以便他们创建您的证书 . CSR包含几条信息:

    • 与证书关联的域的名称 .

    • 与证书关联的公钥 . 请注意,您提供给CA的CSR不包含关联的私钥 .

    您可以使用IIS管理器在PC上本地创建CSR . 注意:IIS包含在Windows中,但默认情况下不会安装 . [我将留下安装IIS的详细信息作为学生的练习 . 也许某些人会编辑这个答案并填写这些细节 . ]

    EDIT: 而不是在本地计算机上安装IIS,您可以RDP到Azure中的 Cloud 服务(非常容易)并在该计算机上使用IIS来创建CSR并完成签名请求 . 如果您这样做,请务必一次完成整个过程 . 如果您生成CSR然后等待一段时间后才能完成请求,则 Cloud 服务可能不在同一台计算机上,并且您将无法在IIS中使用"Export"选项 .

    要创建CSR:

    • 运行IIS管理器

    • 选择(双击)服务器证书

    • 在窗口右侧的“操作”窗格中,单击“创建证书申请” . Common Name是与证书关联的域名 . 其余的字段标识您的公司 .

    • IIS管理器将要求加密服务提供程序和位长 . 您必须至少选择至少2048的位长 .

    • IIS管理器将创建公钥/私钥对 . 公钥包含在IIS管理器为您创建的CSR文本文件中 . 私钥藏匿在PC上的某个地方(我假设在个人密钥库中) .

    要创建CSR,您还可以参考godaddy site中的详细步骤 . 非常有帮助 .

    现在,返回到您的CA网站,找到可以创建您购买的证书的在线工具 . 它要求您做的第一件事是粘贴(或上传)CSR文本 . 跳过CA的箍之后,您将收到一个或多个证书文件 .

    Install certificate files into IIS

    GoDaddy为您提供了两个文件:一个p7b文件和一个crt文件 .

    The crt file 包含您的公共证书 . 但是你可以包含相关的私钥 . Web主机需要私钥和公钥,因为它将代表您进行端到端加密 .

    The p7b file 包含构成"certificate chain"的证书,允许您的证书验证到您的CA.换句话说,当有人来到您的网站并获得声称您的网站由Acme.com运营的证书时,此证书链允许该人员稍后返回此文件...

    现在,您需要将公共证书与私钥组合,并将结果存储在受密码保护的pfk文件中 .

    在创建CSR的同一台计算机上返回IIS管理器,导航回“服务器证书”页面,然后单击“完成证书申请”(在屏幕右侧的“操作”窗格中) .

    • 告诉向导使用从CA收到的证书文件(在我的情况下,它是一个crt文件,但如果您的CA使用不同的编码方法,它可能是不同的文件类型) .

    • 友好名称应该是您的域名,但您也可以添加"SSL"以帮助区分它(例如ContosoSSL)

    • 告诉向导将密钥存储在您的个人存储中

    要将证书安装到IIS,godaddy site help中的这些详细步骤可能会有所帮助 .

    Get the pfx file

    您现在应该在IIS管理器的“服务器证书”页面上看到新证书 . 选择该证书并将其导出为pfx文件(通过屏幕右侧的“操作”窗格) .

    现在,您可以转到https://manage.windowsazure.com(Windows Azure管理门户),选择您的网站或 Cloud 服务,并将pfx文件上载到Azure证书库 .

    呼 . 祝好运...

    EDIT

    以上说明仅涉及在Azure Web角色中安装SSL证书,但是 not 中间证书(即"certificate chain") . 这适用于大多数客户端(浏览器),因为大多数浏览器都具有烘焙到其中的主要CA的中间证书 . 换句话说,浏览器知道如何从SSL证书到发布它的CA . 但是一些客户要求网站本身不仅发布SSL证书,还发布所有中间证书 .

    有关如何执行此操作的详细信息,请参阅this SO answer .

相关问题