当前位置: 首页 > news >正文

牛牛截图控件与利洽远程控制产品升级-支持证书自动升级

今天我们来聊一聊浏览器控件的一个痛点!看看我们是如何解决他的。

背景信息

目前市面上存在多种浏览器,IE、Chrome、Firefox、Edge以及一众国产浏览器,这些浏览器中,IE支持ActiveX,部分国产浏览器支持npapi,而其他的浏览器这两者都不再支持,要如何做到一个浏览器插件,能够在所有的浏览器上都能够正常使用呢?

我们知道利洽科技的浏览器控件针对不同类型的浏览器,采用不同的技术方案,最终实现了浏览器的全覆盖支持!比如在Chrome及Edge等新版本浏览器中,我们采用WebSocket来进行浏览器页面与本地进程的通讯与交互,这个在https页面中使用,则需要本地进程应用正式的由CA机构颁发的有效SSL证书。

由于现在的SSL证书都只能签一年的有效期,导致在一年后又需要重新将新申请的证书打包到插件中,并在机器上重新安装才可使用;这给客户正常的业务使用带来非常大的困扰!

为了提升业务可持续性,同时减少用户下载安装的次数,我们实现了一套证书自动升级的机制,发布后,不再需要重新打包插件安装包,而只需要在指定的服务器上更新SSL证书即可,插件将自动下载新的证书并应用。

解决思路:

  1. 将证书存放到指定的http服务器上,比如http地址为:http://test.com/testcert/
  2. 在打包插件时,将证书打包到插件安装包中,同时指定证书更新地址为:http://test.com/testcert/
  3. 插件启动,检测打包的证书是否过期,未过期则直接应用
  4. 如果打包的证书过期,则下载证书更新地址中的证书进行使用,并保存到本地电脑中,供下次使用

实现效果

我们实现了牛牛截图控件以及利洽远程控制组件的Windows、Macos以及Linux国产化操作系统全系列的功能实现,全面支持证书的自动升级与应用,真正做到了一次部署,持续使用!

只需要运维人员定期的更新服务器上的SSL证书即可,如果再结合上服务端的证书自动续期与更新,就可以做到全自动了!

可以到这个页面进行体验:http://leeqia.com/screencapture/onlinedemo/

具体配置

接下来让我们一起来看看具体的配置何实现:

  1. 由客户在服务器上分出一个目录来存放要更新的证书,比如其对应的http地址为:http://test.com/testcert/

  2. 由客户在testcert目录下放入要更新的证书以及校验文件,具体如下:

    文件名称用途备注
    server.pem证书文件我们采用的是nginx类型的SSL证书,需要pem文件和key文件
    server.key证书私钥我们采用的是nginx类型的SSL证书,需要pem文件和key文件
    set.ini用于给证书升级过程提供校验,比如记录证书和私钥文件的大小和md5值

    set.ini示例内容如下:

    [set]
    cert_file_name=server.pem
    cert_file_size=4121
    cert_file_md5=ac989ee8f8f30317c39aef4be56faa8d
    key_file_name=server.key
    key_file_size=1700
    key_file_md5=d1bfa0e6caa3054ecb268135dad1330e
    
  3. 将http地址提供过来,我们打包插件的时候,将http://test.com/testcert/打包到插件中,即可完成所有的配置

注: 证书请勿使用泛域名证书,直接申请免费的单域名证书即可。

结语

牛牛截图控件作为目前使用体验最好,功能及兼容性最全面的一款截图控件,专为软件集成而生; 我们立足于为企业和个人提供小巧而精致的插件、产品;再微小的功能,在我们心中都是一个大的产品,从微小处入手,打造极致的产品应用体验!

 

相关文章:

牛牛截图控件与利洽远程控制产品升级-支持证书自动升级

今天我们来聊一聊浏览器控件的一个痛点!看看我们是如何解决他的。 背景信息 目前市面上存在多种浏览器,IE、Chrome、Firefox、Edge以及一众国产浏览器,这些浏览器中,IE支持ActiveX,部分国产浏览器支持npapi&#xff…...

06-jQuery-DOM操作-属性操作-attr()\prop()\addClass()\toggleClass()等

一、通用属性操作 1、attr() 方法:主要用于获取或设置 HTML 元素的属性值,它接受一个参数或两个参数,当传递一个参数时,它返回指定属性名的属性值;当传递两个参数时,它设置指定属性名的属性值为指定的值。…...

接口自动化框架(Pytest+request+Allure)

前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱。 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种&#xff0c…...

2. 流程控制语句

2. 流程控制语句 2-1. prompt() 弹出一个对话框,用户可以输入内容,输入的内容可以通过变量接收 2-2. if…else if …else 语法: if(条件表达式1){ ​ 条件表达式1为真执行 ​ if(){ ​ }else{ ​ } }else { ​ 条件表达式1为假执行 } if els…...

为了流量,何同学做了个“假B站”?

何同学是B站知名数码博主,凭借优秀的视频制作能力,内容创新获得广大年轻用户的喜欢。 2021年的时候,UP主老师好我叫何同学就发布了一条制作AirDesk的视频,随后迅速在社交媒体中引发了大量关注。 当时,该视频为B站全站…...

腾讯云图形验证码申请流程

目录 一、官方指引二、操作步骤1.步骤1:新建验证,获取验证码密钥2.步骤2:客户端接入验证码,展示验证页面3.步骤3:服务端接入验证码,调用票据校验 API 进行二次校验 一、官方指引 https://cloud.tencent.co…...

浅谈管网抢维修效率对产销差率的影响

1 背景 多年来,漏损治理工作一直围绕检漏、分区计量或压力管理等相关话题,却忽视了抢维修速度与质量对漏损治理成效的影响。实际上,不管是DMA分区计量,还是检漏,最终还是要通过抢维修来修复漏点达到控制漏损的目的。尽…...

java设备台账管理系统myeclipse定制开发mysql数据库网页模式java编程jdbc

一、源码特点 java设备台账管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助 mysql数据库,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 java设备台账管理系统myeclipse定制开发mysql 二、功能介绍 此次系统…...

ChatGPT帮你写简历找工作

随着随着毕业时间的到来,应届生将要面临求职问题,根据官方的统计,2023届高校毕业生预计达1158万人,就业市场竞争激烈,无论是校园招聘,招聘会,线上招聘除了自身的准备和个人能力,都会…...

CentOS 8.5和CentOS8.4安装-解决Error setting up base repository问题

CentOS 8 内核采用了python3.6,而CentOS 7还是python2.7,对于想要用GPU服务器进行机器学习方面的工作,还是用python3.6的内核更好些。 CentOS 8 的新特性 DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的 使用网络管理器( nmcli 和 nmtui)进行网络配置,移除了网络脚…...

数据抓取使用HTTP隧道代码示例

以下是使用Python的requests库实现HTTP隧道的代码示例: python import requests # 设置代理服务器地址和端口号 proxy_host 127.0.0.1 proxy_port 8888 # 设置目标网站URL url Example Domain # 创建Session对象 session requests.Session() # 设置代理服务…...

vue3【使用axios并封装axios请求】

第一步:安装axios npm install axios 第二步:编写请求文件 新建request.js 简单的axios封装,里面相关提示信息,自己可以引入element-plus去添加 /**axios封装* 请求拦截、相应拦截、错误统一处理*/ import axios from axios; i…...

「实验记录」MIT 6.824 Raft Lab2C Persist

#Lab2C - Persist I. SourceII. My CodeIII. MotivationIV. SolutionS1 - 实现persist()S2 - 实现readPersist()S3 - 持久化三字段S4 - 在newRaft()中初始化nextIdxs和matchIdxsS5 - 适当缩短心跳时间 V. Result I. Source MIT-6.824 2020 课程官网Lab2: Raft 实验主页simviso…...

软件详细设计总复习(三)【太原理工大学】

题型及分值: 选择 30 分,填空 20 分, 判断 10 分,简答 20 分,综合设计 20 分。 文章目录 三、行为型模式1. 命令模式2. 迭代器模式3. 观察者模式4. 状态模式5. 策略模式 三、行为型模式 1. 命令模式 举个例子&#x…...

Vue3(一):创建vue3工程、setup、vue3响应式原理、computed和watch

Vue3:第一章 一、创建Vue3.0工程1.使用vue-cli创建2.使用vite创建 二、Vue3中的响应式1.拉开序幕的setup2.ref函数3.reactive函数4.vue3中响应式的原理(1)vue2中响应式原理(2)Vue3中的Proxy 5.reactive和ref的对比6.se…...

Spring中的@Value注解详解

Spring中的Value注解详解 概述 本文配置文件为yml文件 在使用spring框架的项目中,Value是经常使用的注解之一。其功能是将与配置文件中的键对应的值分配给其带注解的属性。在日常使用中,我们常用的功能相对简单。本文使您系统地了解Value的用法。 Value…...

YSL赢麻了?SMI社媒心智品牌榜Top20公布:YSL破局夺魁,国货品牌现后起之秀

全文速览 1.数说故事联合用户说从美妆、彩妆、护肤三板块全新发布《SMI社媒心智品牌榜》。 2.圣罗兰、兰蔻、欧莱雅等法国高端美妆大牌垄断美妆《SMI社媒心智品牌榜》前三甲。 3.彩妆Top20榜单中,底妆产品稳居前列,色彩美妆占据一席之地。 4.护肤TOP…...

链式哈希,一致性哈希,倒排表

在普通的查询中,通过关键码的比较进行查找,而哈希是根据关键码直接定位到数据项 哈希冲突:同一个关键码经过哈希函数后指向同一个记录集 链式哈希 using namespace std; #define M 13 typedef int KeyType; //typedef struct //{ // KeyTyp…...

Python操作XML教程:读取、写入、修改和保存XML文档

目录 导入所需模块解析XML文档获取元素遍历XML文档写入新的元素修改元素的内容和属性删除元素保存修改后的XML文档示例演示python操作xml的常用方法 XML是一种常见的数据交换格式,在许多应用中都被广泛使用。通过掌握Python操作XML的基础知识,您将能够轻…...

Oracle数据库中了locked1勒索病毒,用友nchome配置文件损坏该如何解除

随着互联网技术的不断发展,网络安全问题也越来越受到人们的关注。其中,勒索病毒是一种比较常见的网络安全威胁。最近很多集团企业在使用Oracle数据库的过程中,遭遇到了locked1勒索病毒的攻击,导致企业的用友nchome配置文件损坏&am…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

篇章一 论坛系统——前置知识

目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...