IIS6:从命令行创建/安装 SSL 自签名证书
Posted
技术标签:
【中文标题】IIS6:从命令行创建/安装 SSL 自签名证书【英文标题】:IIS6: Create/install SSL self-signed cert from command line 【发布时间】:2011-08-16 20:19:57 【问题描述】:我想在 IIS6 中为网站自动设置 SSL。看来 selfSSL 和 certutil 可用于执行此操作,但证书对我来说是新的,我不确定如何将它们放在一起。
据我了解,我需要:
-
创建证书
将证书分配给网站
向网站添加安全 (SSL/443) 绑定
如果站点证书已经创建,我还想避免创建新证书。这样我就不会得到一堆冗余证书。
【问题讨论】:
您是否已经拥有证书,或者您想要为每个单独的服务器创建一个新证书? 这是一个很好的问题,我期待听到答案。我要警告的一件事是使用 SelfSSL,尤其是在一个 IIS 实例中有多个站点时。以我的经验,一次只处理一个站点是可以的。我相信这个问题有一个解决方法,甚至有一个没有错误的更新工具(SSLDiag?)。以下博客评论线程中有更多关于该问题的详细信息 - blogs.msdn.com/b/david.wang/archive/2005/04/20/… Lee - 我想要一个新证书。我发现 selfSSL 似乎通过命令行 Saul 提供了这个 - 谢谢你的信息!我们可能会在我们的 dev/sqa/mock 环境中使用 selfSSL(或类似的东西),但在生产环境中手动创建。 【参考方案1】:我建议您查看 IIS 6 资源工具包:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17275
资源工具包中有一个名为selfssl.exe 的工具 - 它可以自动创建、分配甚至信任新创建的证书。在我工作的地方,我们经常使用它来确保我们的开发盒拥有我们可以在测试/开发期间使用的证书。
这是我们使用的命令行 - 它将使用 1024 的密钥大小创建证书(用于本地主机),信任它,并使其有效期为 ~10 年:
selfssl.exe /T /N:CN=localhost /K:1024 /V:3650
如果您托管多个站点,则需要使用 /S
参数来指定要添加证书的站点 ID。
注意:这在 WinXP 上也可以像使用 IIS 5 的冠军一样工作,但我从未在任何 IIS 7 系列上尝试过。
【讨论】:
好像新支持TSL1.2?【参考方案2】:如果您使用Wix 来编写您的设置,那么运行这个CustomAction(它只是运行SelfSSL)将为您解决问题:
<CustomAction Id="InstallCert"
ExeCommand="selfssl.exe /N:CN=fqdn.myserver.com /V:365" />
<InstallExecuteSequence>
<Custom Action="InstallCert" After="InstallFinalize" />
</InstallExecuteSequence>
此操作将:
生成证书 将证书安装到Default Web Site
添加 https 绑定
命令行解释:
/N:CN=[fully qualified server name]
/V: = Validity in days (365 in my example)
您可以使用/P:[port number]
开关指定端口。默认值为 443,这是您想要的,因此您可以将其省略。
警告:SelfSSL 似乎存在错误,似乎是resolved。
如果您仍然遇到它,替代方法是切换到具有类似语法的SSLDiag
工具:
SSLDiag.exe /selfssl /n:CN=fqdn.myserver.com /v:365
我没有使用其他设置创作工具(InstallShield 等)的经验,但我确信他们有运行命令行程序的规定。最坏的情况,你可以通过一个批处理文件来运行它!
希望这会有所帮助。
【讨论】:
以上是关于IIS6:从命令行创建/安装 SSL 自签名证书的主要内容,如果未能解决你的问题,请参考以下文章
❖ 自签名 SSL 证书(self-signed SSL certificate)