终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名)
升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
背景
我在业余时间开发的这个客服系统,有一个问题始终让我饱受困扰,360以及各种国产安全管家十分容易报威胁。即便ESET、卡巴斯基、Windows Defender、小红伞全部一切正常,但360、国产管家就是倔强的报威胁。而这些国产管家的用户基数又很大,非常让人恼火。难道真的必须交保护费吗?
经过长时间的尝试和测试,终于在一定程度上缓解了这个问题(还不敢保证不会再报,继续观察)。
对软件进行数字签名
如果软件被360和国产管家报威胁,可以为其进行数字签名,即使用代码签名证书,用户下载软件时,能通过数字签名验证软件来源,确认软件、代码没有被非法篡改或植入病毒,减少被误报的可能。
Signcode.exe
Signcode.exe 是微软提供的一款用于对代码和软件文件进行数字签名的工具:
- 支持多种文件类型签名:能够对常见的可执行文件(如.exe、.dll、.ocx)、Cabinet 打包文件(.cab)以及目录文件(.cat)等进行数字签名,确保这些文件的完整性和来源可靠性,防止文件被篡改.
- 增强软件安全性和可信度:通过数字签名,用户在下载和运行软件时,可以验证软件是否来自合法的开发者,以及软件在传输过程中是否被修改过,从而提高软件的安全性和可信度,减少用户对未知来源软件的担忧.
- 提供时间戳服务:在签名过程中可添加时间戳,即使代码签名证书过期,只要软件是在证书有效期内签名的,时间戳服务仍能保证该软件的签名在一定时间内继续有效,用户依旧可以放心下载和使用,无需开发者重新对软件进行签名.
生成数字签名证书
生成证书:可以使用 New-SelfSignedCertificate 命令生成自签名证书,例如
New-SelfSignedCertificate -Type Custom -Subject "CN=YourCompanyName" -KeyUsage DigitalSignature -FriendlyName "YourFriendlyName" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10)
其中CN为证书的主题名称,可根据实际情况修改,此命令会在当前用户的证书存储区生成一个自签名证书.
导出证书:使用 Export-PfxCertificate 命令将证书导出为pfx格式,如
Export-PfxCertificate -cert "Cert:\CurrentUser\My\YourCertificateThumbprint" -FilePath yourcertificate.pfx -Password (ConvertTo-SecureString -String "YourPassword" -Force -AsPlainText)
注意将YourCertificateThumbprint替换为实际的证书指纹,YourPassword替换为设置的密码.
使用 Signtool 签名:找到Signtool.exe工具的路径,一般在 C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe,打开命令提示符,进入该目录,然后执行签名命令,如
C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f yourcertificate.pfx /p YourPassword /t http://timestamp.digicert.com /v "YourSoftware.exe"
将yourcertificate.pfx、YourPassword和YourSoftware.exe分别替换为实际的证书文件、密码和要签名的软件文件名.
使用 Signcode.exe 工具
制作根证书:在命令提示符中输入
makecert -sv myroot.pvk -ss mysubjectname -n CN=mycompany -r myroot.cer
其中-sv指定私钥文件名,-ss指定主题的证书存储名称,-n指定证书颁发对象,-r指定证书存储位置,回车后设置密码并记住.
制作子证书:输入
makecert -sv test.pvk -iv myroot.pvk -n CN=mycompany -$ commercial -ic myroot.cer test.cer
同样设置并记住密码,此命令中的参数含义与制作根证书类似,只是多了-iv指定根证书的私钥文件和-$指定授权范围.
生成 spc 发行者证书:可选操作,输入
cert2spc test.cer test.spc
可在相应目录下生成test.spc文件.
使用 Signcode 签名:运行 signcode.exe,按照向导依次选择需要签名的文件、证书类型为 “自定义”,然后从文件中选择子证书和私钥文件,并输入相应密码,还可根据需要设置哈希算法、其他证书、数据描述以及时间戳等选项,最后完成数字签名.
注意事项
证书的安全性:制作和使用数字证书时,需妥善保管私钥文件和密码,防止证书被盗用或泄露,以免造成软件被恶意签名或其他安全问题.
准确填写描述信息:填写功能描述和 Web 位置时,必须准确无误且指向证书签名单位网站上有关此软件的介绍页面,否则可能导致证书被吊销.
简介下这个 .net 开发的客服系统
可全天候 7 × 24 小时挂机运行,不掉线不丢消息,欢迎实测。
希望能够打造: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
钟意的话请给个赞支持一下吧,谢谢~
终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名)的更多相关文章
- .net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 系列文章目录: https://blog.shengxunwei.com/Home/Post/44a3 ...
- 使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)
近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有 ...
- Linux + .net core 开发升讯威在线客服系统:首个经过实际验证的高性能版本
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程: .net core 和 WPF 开发升讯威在线客服系统:目录 https://blog.she ...
- 使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署免费下载:https://docs.sh ...
- Vue在线客服系统【开源项目】
1. 项目介绍 一个基于Vue2.0的在线客服系统. 技术栈包含:Vue.VueX.Vue Router.Element UI. 2. 功能介绍 项目包含了2个模块:客服端和访客端. 2.1 客服端功 ...
- .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布
希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...
- CentOS 30分钟部署 .net core 在线客服系统
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程.期间有一些朋友希望能够给出 Linux 环境的安装部署指导,本文基于 CentOS 8.3 来安装部署.在本文中我 ...
- Docker 版 3分钟部署 .net core 开源在线客服系统,他来了
我在博客园发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 前些天又应朋友的要求,发了一篇 CentOS 版本的安装部署教程:https://www.cnblogs.com ...
- Linux + .net core 开发升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
- .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署:https://kf.shengxun ...
随机推荐
- 给vue+element-ui动态设置主题色(包括外链样式、内联样式、行内样式)
基本思路 实现思路:实现一个mixins混入的主题js即theme.js,注册到全局下.使用el-color-picker组件切换颜色的时候,把颜色值传递到根root下,在根实例下监听主题色的变化来更 ...
- 小tips:CSS3中的background-clip属性(背景的裁剪区域)
CSS3中的background-clip属性,其主要是用来确定背景的裁剪区域,换句话说,就是如何控制元素背景显示区域. 语法如下: background-clip : border-box || p ...
- ASP.NET Core – Dependency Injection
前言 很久很久以前就写过了 Asp.net core 学习笔记 ( DI 依赖注入 ), 这篇只是整理一下而已. 参考 Using dependency injection in a .Net Cor ...
- vue-i18n 8.28.2(完成)
https://kazupon.github.io/vue-i18n/zh/introduction.html 开始 如果使用模块系统 (例如通过 vue-cli),则需要导入 Vue 和 VueI1 ...
- java_day2_常量,变量,数据类型,运算符
一.常量 常量:在Java程序运行过程中其值不能发生改变的量 分类: 1.字面值常量: 整数常量 表示所有的整数,包括负数 10 -8 小数常量 表示所有的小数 1.23 -3.14 布尔常量 tru ...
- MyBatis——案例——环境准备
配置文件完成增删改查 准备环境 数据库表 tb_brand -- 创建tb_brand表 create table tb_brand( id int primary k ...
- USB编码方式(NRZI)及时钟同步方式
1.概述 在同步通讯系统中,两个设备通讯则需要同步信号,同步信号分为时钟同步信号和自同步信号两种,时钟同步方式在通讯链路上具有时钟信号(IIC.SPI),自同步方式在通讯链路中没有同步信号(PCIE. ...
- 利用cv2.morphologyEx提取图像边界
cv2.morphologyEx(image, cv2.MORPH_GRADIENT, SE)可以参考这篇博客cv2.MORPH_GRADIENT:形态学梯度(morph-grad),可以突出团块(b ...
- input 的hidden 属性
hidden 会隐藏input 标签内容显示,不占位置 : <input type="file" name="" id="" ref= ...
- SaaS架构:中央库存系统架构设计
大家好,我是汤师爷~ 近年来,越来越多的零售企业大力发展全渠道业务.在销售额增长上,通过线上的小程序.直播.平台渠道等方式,拓展流量变现渠道.在会员增长方面,通过多样的互动方式,全渠道触达消费者,扩大 ...