我的本地开发机器上有我的站点 mydomain.local,它使用本地主机文件条目指向 127.0.0.1。该目录是我的工作 git 副本,它就像一个魅力。它总是指向我检查过的任何东西。
我想设置 SSL,但在我去其他地方实现它之前,当然需要在本地和我的代码进行测试。这是我的 Win7 Ultimate 机器,这个开发环境使用成熟的 IIS 7.5,而不是任何内置的 IIS express 或 localhost:port# 自动配置。
通过多次实验,我使用SelfSSL7来更好地控制和设置自签名 SSL 证书。它有很多选项,而且似乎运行良好。
根据有限的文档,我使用以下命令生成我的 SelfSSL 证书:
SelfSSL7 /Q /T /I "mydomain.local" /S "MyDomain IIS Name" /N cn=pc_name;cn=localhost;cn=mydomain.local
它确实使用正确的域正确绑定到我的 IIS 设置。但是当我尝试启动站点时,我收到了这个错误:
The process cannot access the file because it is being used by another process. (Exception 0x80070020)
我查找了这些错误,并被指示检查哪些服务在端口 443 上侦听 SSL。这是我的输出(其中端口==443)的输出片段netstat -ano
(我已经修剪了所有其他内容)
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 5800
TCP [::]:443 [::]:0 LISTENING 5800
问题是文档很糟糕(惊喜),我不知道从哪里开始。他们指定的注册表路径实际上并没有在我的机器上退出(Regedit 中没有 ListenOnlyList 文件夹)。此外,我有 0 个其他 IIS 站点设置,并且绝对没有设置超过 443 的 SSL。
摘要:可以生成 SSL 证书,看起来不错,但是一旦绑定到位,我就无法在 IIS 中启动该站点。同样,SSL 看起来是正确的——也许更多的是关于端口 443 和“套接字池”(???)