在本地主机上如何使用https/SSL?

99
我想知道如何在我的本地Web应用程序上设置SSL。我没有做过这方面的背景,希望能得到指导。我已经完成了我的Web应用程序的实现,我需要它在本地或在服务器上托管时使用https。有什么建议吗?谢谢。

请查看类似的帖子:https://dev59.com/j-Hxs4cB2Jgan1znf7Dd#40107095 - Pusker György
对于谷歌用户,请前往 https://dev59.com/PGsz5IYBdhLWcg3w6MNS#57511038。简而言之,使用 mkcert 来获得一个好的证书并在您的操作系统上进行安装。 - koppor
3个回答

28
如果您使用带有Visual Studio的IIS Express:
要在IIS Express中启用SSL,只需在项目属性窗口中设置“SSL Enabled = true”。
请参见this code project上的步骤和图片。
IIS Express将为您生成证书(您将被提示等)。请注意,根据配置,站点仍然可能自动启动URL而不是SSL URL。您可以查看SSL URL-注意端口号并在浏览器地址栏中替换它,您应该能够进入并进行测试。
从那里,您可以右键单击项目,单击属性页面,然后选择启动选项并分配启动URL-将新的https与新的端口(通常为44301-注意与端口443的相似之处)放入其中,然后您的项目将从那时起正确启动。

enter image description here


我可以选择端口吗?即使用默认的 https 端口,即 443 端口吗? - Nate Anderson
1
@TheRedPea 在我遇到的每种情况下,你需要使用端口44301来在本地测试,而不是使用端口443。这不会影响你在IIS中绑定的用于生产服务器的端口(假设你正在使用https),这些端口几乎总是443。 - JackArbiter

25

创建自签名证书,导入并绑定到您的网站非常容易。

1.) 创建自签名证书:

从提升的命令提示符中逐一运行以下4个命令:

cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -sv localhost.pvk localhost.cer

cert2spc localhost.cer localhost.spc

pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

2.) 将证书导入到受信任的根证书颁发机构存储区:

开始 --> 运行 --> mmc.exe --> 证书插件 --> "受信任的根证书颁发机构" --> 证书

右键单击“证书” --> 所有任务 --> 导入 在C:\Program Files (x86)\Windows Kits\8.1\bin\x64\路径下找到您的“localhost”证书。

3.) 将证书绑定到网站:

开始 --> (IIS) Manager --> 点击服务器 --> 点击站点 --> 点击您的顶级站点 --> 绑定

添加或编辑一个https绑定,并选择名为“localhost”的SSL证书。

4.) 将证书导入到Chrome中:

Chrome 设置 --> 管理证书 --> 从 C:\certificates\ 文件夹导入 .pfx 证书

通过打开 Chrome 并导航到 https://localhost/ 来测试证书。


你如何获取刚在命令“makecert”中使用的文件?localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc。我如何获取private.key文件以创建allinone.pem文件,以在除IIS之外的其他Web服务器中使用? - user285594
如果您不想将证书导入Chrome中,可以选择禁用Chrome安全功能,该功能会阻止访问本地主机上的自签名证书。https://dev59.com/PGsz5IYBdhLWcg3w6MNS#31900210 - Jason Williams
为什么使用代码签名 EKU 而不是服务器身份验证 EKU? - Reahreic
为什么要使用代码签名 EKU 而不是服务器身份验证 EKU? - Reahreic

10

虽然这个问题很老,但当我在寻找最简单、最快捷的方法时,我遇到了这个页面。使用Webpack更加简单:

安装webpack-dev-server

npm i -g webpack-dev-server

如何使用 HTTPS 启动 webpack-dev-server

webpack-dev-server --https

2
这将为组成应用程序的js文件提供服务,但不运行应用程序。 - user1944491
这能与像XAMPP这样的现有开发服务器一起使用吗? - Hashim Aziz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接