微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)
作者:C/S框架网|www.cscode.ne  发布日期:2020/02/12 13:35:55
  微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)


微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)

由于最近微信小程序项目比较多,发布和部署微信小程序必须采用https协议,原http协议的WebApi接口访问不了的。直接将WebApi监听的地址修改为Https启动服务显然是不行的,必须借助证书绑定开启对应的端口才行。开始想到去申请的一个免费的证书,由于WebAPi安装在本地Windows服务中且IP地址不固定,所以免费的证书不可取,只能借助MakeCert命令自行创建证书来解决这个问题。希望给Self Hosting或Windows服务Hosting启动Https协议WebApi服务用户启示和帮助。

完整解决方案: 


一、以管理员身份运行VS2015开发人员命令提示


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载


二、生成证书,在命令窗体内执行MakeCert命令


cmd:

MakeCert -sv e:\CSFrameworkWebApiCA.pvk -n "CN=localhost" e:\CSFrameworkWebApiCA.cer -b 02/12/2020 -e 12/31/2050 –r

//来源:C/S框架网(www.csframework.com) QQ:23404761


【注意】:该命令最后一个-r不能缺少,-r是创建自创建证书的标识,否则当利用Pvk2pfx创建私钥时则会出现【ERROR: File not found.(Error Code = 0x80070002)】


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载1


三、打开MMC将创建的证书导入到【受信任的颁发证书机构】中


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载2

四、创建证书的私钥


cmd:

Pvk2pfx -pvk CSFrameworkWebApiCA.pvk -spc CSFrameworkWebApiCA.cer -pfx CSFrameworkWebApiCA.pfx -po test

//来源:C/S框架网(www.csframework.com) QQ:23404761


注意:-po 后面是密码,如:test


五、导入个人证书,必须选择个人信息交换(*.pfx文件格式)


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载3


六.  拿到该证书的指纹,获取证书指纹信息。


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载4


七、证书绑定ip及端口,通过如下命令进行:(这是本文最关键环节!!!)


cmd:

netsh http add sslcert ipport=0.0.0.0:19893 certhash= 93d80be8cc4cb75bff28f412fbe00f5180106e40 appid={61982502-E5D4-4794-BB01-ZDA7414480DF}


//来源:C/S框架网(www.csframework.com) QQ:23404761


certhash参数:指定的证书的指纹。
appid参数:是一个 GUID,用于标识所属应用程序,自己生成一个GUID。

部署Self Hosting 或Windows Service Hosting 宿主的WebApi服务,通过工具操作非常方便,C/S框架网提供IP端口绑定SSL证书用于支持HTTPS协议的原创工具:

贴图图片-IP端口绑定证书


此工具可下载源码:




其他参考:删除证书与IP端口的绑定关系

netsh
http delete sslcert ipport=0.0.0.0:19893

一旦删除证书绑定关系或者运行netsh http add sslcert失败,无法访问webapi接口资源,如下图:

贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载5


查看端口是否已监听

运行WebApi服务器,输入命令:netstat -ano,列出所有端口的情况,可以查看端口是否已监听。


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载8


查看端口、证书绑定状态:

netsh
http show sslcert


贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载9




八、测试HTTPS协议及WebApi接口

IE浏览器测试:

启动Windows服务CSFramework.WebApi服务器,打开浏览器输入

https://localhost:19893/api/do/post

服务器回应 {"Message":"The requested resource does not support http method 'GET'."}
这是正常回应,表示WebApi服务器正常。因为api/do/post接口是HTTPOST方式才出现上面的回应。


贴图图片-WebApi框架HTTPS协议SelfHostingWin服务承载14


使用IE浏览器,网站标识与服务器的连接已加密,https协议以及证书正常。


贴图图片-WebApi框架HTTPS协议SelfHostingWin服务承载12


WebAPI接口测试程序测试:

贴图图片-WebApi框架HTTPS协议SelfHostingWin服务承载15


九、操作错误遇到的问题归集


若执行dos命令出现以下错误,【VS2015开发人员命令提示】必须以管理员身份运行!

贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载6


若出现以下错误:

未能添加SSL证书,错误:1312,指定的登录会话不存在。可能已被终止。

解决方案:创建私钥,并导入个人证书,参考上面的步骤。

贴图图片-WebApi框架HTTPS协议SelfHostingWindows服务承载7



Google Crome浏览器调试错误NET::ERR_CERT_COMMON_NAME_INVALID

此服务器无法证实它就是 localhost - 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接。

贴图图片-WebApi框架HTTPS协议SelfHostingWin服务承载10


出现上述问题的解决方案:给个人证书指定主题备用名称(友好名称)


贴图图片-WebApi框架HTTPS协议SelfHostingWin服务承载11

技术研究以及发布文章前后花了3天时间,希望对大家有所帮助,欢迎购买C/S框架网正版WebApi框架


<本文完>





.NET WebApi开发框架|MVC框架|后端框架|服务端框架-标准版V1.0

适用开发 适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台 运行平台:Windows + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2015+,C#语言
数据库 数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)

WebApi服务端开发框架

产品详情:http://www.csframework.com/cs-framework-webapi-1.0.htm


扫一扫加微信:
 
上一篇 下一篇