希望有人能帮助我解决这个问题,因为关于这个问题似乎存在相互矛盾的文章。
我有一台运行带有 IIS6 的 Windows Server 2003 R2 的旧服务器,需要以 SHA-256 生成 SSL 证书请求。
我已经安装了 MS 的此修补程序(http://support.microsoft.com/kb/948963) 旨在添加 SHA-256 支持。
现在已经安装完毕,我究竟如何让 IIS 生成 SHA-256 中的 CSR?
提前致谢
克里斯
答案1
有一些更新在 Windows Server 2003 中添加了 SHA-256 支持。您需要的是KB2868626;安装此更新后,您将能够在 Server 2003 SP2 上安装 SHA-256 SSL 证书。您可能还想安装以下证书,以便连接到您自己的站点。
KB938397为 Server 2003(SP1 或 SP2)添加了 SHA-256 支持。此更新仅允许 Server 2003 连接到使用 SHA-256 证书的站点,但无法自行提供这些证书(为此,您需要上述 KB2868626)。还有一个额外的 SHA-2 更新,其中 XP 和 Server 2003 客户端无法从 Windows Server 2008 获取 SHA-256 证书,即KB968730。
关于 CSR 生成,如果您从公共 CA 购买证书,则无需在 CSR 中指定签名算法。CA 将根据您的选择和/或 CA 的颁发政策颁发使用 SHA1 或 SHA2 签名的证书。
我确实研究过,但在 Server 2003 中没有找到创建 SHA-256 CSR 的方法。Windows 中内置了一个名为“Certreq”的实用程序。我没有在certreq 的 Server 2003 版本,但它存在于后续版本。
我发现的另一个参考是通过 MMC 创建自定义请求。在教程中它提到选择哈希算法,但屏幕截图不匹配。可能值得调查。
一些额外的资源:
答案2
SHA-256 中不存在 SSL 证书请求。
创建 CSR 时,您只能选择大小(1024 位 - 4096 位)。
您需要将该 CSR 发送给证书颁发机构,该机构将为您签名。他们很可能默认使用 SHA-256 签名对其进行签名,或者会提供一个列表框供您在 SHA1 和 SHA-256 之间进行选择。
更新:看来 CSR 确实也已签名。Windows 默认使用 SHA-1 进行签名,但在 Google 上搜索“iis csr sha256”会找到很多指针。
答案3
我认为与其在 IIS6 中生成 CSR,不如转到运行较新版本(如 Windows 2008R2 或 2012R2)的其他服务器来生成 CSR,然后将其发送给您的 CA。获得证书后,将其导出到 .pfx 文件,然后返回 2003R2 服务器,复制并导入它。我已经在我的一台 2003R2 机器上成功完成了此操作。