我正在 IIS 7.5 中创建自签名 SSL 证书供内部使用。我的问题是,我希望创建这些证书的有效期为 10 年,因为这只是一个开发环境。
我在 IIS 7.5 中看不到可以指定证书有效期的选项。默认情况下,它会创建有效期为 1 年的证书。
有什么方法可以改变这种情况,使它们有效期为 10 年?
答案1
SelfSSL.exe
您可以使用IIS6 资源工具包附带的工具执行此操作。您可以从此处获取资源工具包:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17275
安装程序只会将工具解压到一个文件夹中,不会干扰您的任何机器设置。自定义安装选项还允许您选择要安装的工具并将其安装到您自己选择的文件夹中。
打开管理员命令行并将目录更改为SelfSSL
安装命令行工具的位置。
要生成有效期为 10 年的新自签名 SSL 证书,请执行以下操作:
selfssl /n:cn=www.mydomain.com /v:3650 /s:8 /k:2048
这将生成一个 ssl,其中:
/n:cn=www.mydomain.com
- SSL 适用于www.mydomain.com
。cn=
(通用名称)很重要,所以不要遗漏。/v:3650
- 证书有效期为天数,在本例中为 10 年/s:8
- 在站点 ID 中安装证书8
/k:2048
- 使用 2048 位的密钥长度。
不幸的是,没有办法将 SSL 直接输出到文件,您必须将其安装到网站中。不过好消息是证书是可以导出的。
如果您希望在使用自签名 SSL 浏览网站时有关 SSL 不被信任的警告消失,那么您也可以修复它:
- 将自签名 SSL 导出到文件
.pfx
(需要设置密码,请务必记住) - 启动(从命令行或开始 -> 运行)
mmc certmgr.msc
浏览
Trusted Root Certificate Authorities -> Certificates
并右键单击以获取Import...
选项:按照向导并指定
.pfx
要导入的内容,然后单击下一步(您需要在步骤 1 中设置的密码):在下一个向导步骤中,我们需要选择要使用的商店。单击
Browse...
按钮将打开Select Certificate Store
窗口。我们需要查看实体店,因此请确保勾选Show physical stores
:根据上面的屏幕截图展开
Trusted Root Certificate Authorities
并选择,然后单击Local Computer
OK
Next >
单击
Finish
向导最后一步的按钮,如果一切顺利,您应该会看到:
注意事项和陷阱:
自带SSL可能需要安装 IIS6 管理兼容性组件。我无法判断,因为我自己的机器已经安装了该组件,并且没有 VM 可用来通过删除它们来测试此理论。
如果您希望能够将 SSL 添加到受信任的根证书颁发机构存储,请将 SSL 颁发给
cn=www.mydomain.com
而不是。cn=mydomain.com
答案2
据我所知,IIS 7.x 的问题在于您无法为 SSL 绑定设置主机头。
使用 appcmd 命令行实用程序,您应该能够做到这一点。这些站点可以使用相同的证书,但会有不同的主机头。
如果您使用数据运行以下 2 个命令,它应该配置主机头。
c:\Windows\System32\inetsrv>appcmd set site /site.name:"local.yourdomain.com" /+bindings.[protocol='https',bindingInformation='*:443:local.yourdomain.com']
c:\Windows\System32\inetsrv>appcmd set site /site.name:"local.dev.yourdomain.com" /+bindings.[protocol='https',bindingInformation='*:443:local.dev.yourdomain.com']
不幸的是,您还需要做其他事情才能使其正常工作,但我不确定具体是什么。我知道我做了一些 IIS 重置,并重新选择了 SSL 证书,但我不确定执行这些操作的顺序。但我知道我没有做任何“花哨”的事情,比如使用其他工具。
答案3
OpenSSL 还可用于创建自签名证书,如 Stack Overflow 答案中所述: