.Net Core API 发布到IIS后,如何配置SSL详细步骤
一、首先,我们要将API发布到IIS,不脱机工作。但是这里会有问题,调用接口时,会返回
也就是说,我们需要配置SSL。接下来我们就来详细说明。
二、域名商提供SSL证书审核。
我的域名提供商是腾讯,直接百度如任何申请SSL证书就好。可以是免费的,我申请的是1年的免费SSL。
申请审核的时间大致是1个工作日,我的是4小时。成功后返回的是短信或者邮箱。
三、下载证书。
登录腾讯云,下载。
四、使用
下载之后解压,里面有很多不同的文件。我们是发布到IIS,所以选择IIS的文件。里面有证书文件和密码,待会儿我们会用到。如果是其他的平台,请对应选择哈。
五、配置。
1、打开IIS管理器 → 点击左侧列表最顶级的IIS服务器名 → 双击右侧功能视图的“服务器证书”进入服务器证书配置页。
2、在服务器证书配置页中,点击右侧操作列表的“导入”,打开“导入证书”对话框,在此对话框中选择相应的pfx格式的证书文件并输入其密码,点击“确定”按钮将pfx证书添加到IIS中。
3、右击需要支持https访问的网站名称 → 右键点击“编辑绑定” → 打开“网站绑定”对话框。
默认端口443,也可以选其他端口。
参数设置如下:
类型:选择https;
端口:可以默认为443,也可以设置其它未被占用的端口;
SSL证书:选择在第2个步骤中添加的pfx证书;
以上设置完成后,点击“确定”按钮完成绑定。
4、在网站的功能视图中的IIS项里,有一项是“SSL设置”,双击此项进入SSL设置页,如果勾选“要求SSL”,则访问此网站必须是https模式,反之,也可以使用http模式访问此网站。
5、SSL访问
6、外网通过域名直接访问
注意:如果公网IP不能正常访问,则检查云服务器安全组,是否配置出入站规则的端口,如果IP能访问,但是域名无法访问,请检查域名解析在云服务器中的DNS是否异常。之前就是因为我更换了云服务器,导致主机变更,DNS解析错误。重新编辑为新的主机即可。
7、修改后前端ajax还需要注意,因为接口从http升级为https后,ajax请求有变化,容易出现以下错误。
解决办法有两种:
一、在需要的html头部添加这个代码,自动升级http为https请求
<!--将http请求自动升级为https请求--> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
二、
在我们服务器的响应头中加入:
header("Content-Security-Policy: upgrade-insecure-requests");