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


  微信小程序使用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


扫一扫加微信:
 
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:原创WebApi框架:采用HTTPS协议SelfHosting,Windows服务承载WebApi服务
下一篇:Google Crome浏览器调试错误NET::ERR_CERT_COMMON_NAME_INVALID
评论列表

发表评论

评论内容
昵称:
关联文章

程序使用https协议WebApi应用服务Win服务宿主承载
阿里云购买免费版个人SSL证书 - 程序应用服务必须是HTTPS协议
程序框架 | C# ASP.NET服务WebApi快速开发框架平台
程序框架|公众号框架(C# WebAPI
CSFramework.WebApi开发框架服务器宿主承载方式
CSFramework.WebApi框架快速搭建服务支持APP、B/S、C/S、程序、公众号、Web客户
WebApi框架服务框架开发程序订阅消息接口
原创WebApi框架:采用HTTPS协议SelfHosting,Windows服务承载WebApi服务
C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主
使用WebApi框架开发程序程序详细设计说明书模板docx文件
原创产品-程序APP服务WebApi开发框架
WebApi开发框架应用电商程序成功案例
C#.NET IP端口绑定SSL证书支持HTTPS协议(用于Win服务承载WebApi服务器) - C/S框架网原创
.NET WebApi开发框架-程序消息订阅与推送案例详解
C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主
WebApi开发框架成功案例:车货匹配类程序
CSFramework WebApi服务框架开发支付接口成功案例
CSFramework.WebApi开发框架-电商程序
CSFramework.WebApi开发框架成功案例-物流行业TMS系统+APP+程序
承载 Service Host 和使用 WCF 服务

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序