当前位置: 首页 > 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/打包到插件中,即可完成所有的配置

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

结语

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

 

http://www.lryc.cn/news/70497.html

相关文章:

  • 06-jQuery-DOM操作-属性操作-attr()\prop()\addClass()\toggleClass()等
  • 接口自动化框架(Pytest+request+Allure)
  • 2. 流程控制语句
  • 为了流量,何同学做了个“假B站”?
  • 腾讯云图形验证码申请流程
  • 浅谈管网抢维修效率对产销差率的影响
  • java设备台账管理系统myeclipse定制开发mysql数据库网页模式java编程jdbc
  • ChatGPT帮你写简历找工作
  • CentOS 8.5和CentOS8.4安装-解决Error setting up base repository问题
  • 数据抓取使用HTTP隧道代码示例
  • vue3【使用axios并封装axios请求】
  • 「实验记录」MIT 6.824 Raft Lab2C Persist
  • 软件详细设计总复习(三)【太原理工大学】
  • Vue3(一):创建vue3工程、setup、vue3响应式原理、computed和watch
  • Spring中的@Value注解详解
  • YSL赢麻了?SMI社媒心智品牌榜Top20公布:YSL破局夺魁,国货品牌现后起之秀
  • 链式哈希,一致性哈希,倒排表
  • Python操作XML教程:读取、写入、修改和保存XML文档
  • Oracle数据库中了locked1勒索病毒,用友nchome配置文件损坏该如何解除
  • leecode 数据库: 602. 好友申请 II :谁有最多的好友
  • 基于 Prometheus 的 SLO告警实战
  • 调用百度API实现图像风格转换
  • 5个最好的WooCommerce商城自动化动作来增加销售量
  • 打开数据结构大门——实现小小顺序表
  • 一.RxJava
  • 如何使用 VSCode 软件运行C代码
  • C# 调用Matlab打包的 DLL文件(傻瓜式操作)
  • 微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)
  • 【面试题】中高级前端工程师都需要熟悉的技能--前端缓存
  • 小红书数据分析:首播卖6亿,小红书直播开启新纪元!