今天我们来聊一聊浏览器控件的一个痛点!看看我们是如何解决他的。
背景信息
目前市面上存在多种浏览器,IE、Chrome、Firefox、Edge以及一众国产浏览器,这些浏览器中,IE支持ActiveX,部分国产浏览器支持npapi,而其他的浏览器这两者都不再支持,要如何做到一个浏览器插件,能够在所有的浏览器上都能够正常使用呢?
我们知道利洽科技的浏览器控件针对不同类型的浏览器,采用不同的技术方案,最终实现了浏览器的全覆盖支持!比如在Chrome及Edge等新版本浏览器中,我们采用WebSocket来进行浏览器页面与本地进程的通讯与交互,这个在https页面中使用,则需要本地进程应用正式的由CA机构颁发的有效SSL证书。
由于现在的SSL证书都只能签一年的有效期,导致在一年后又需要重新将新申请的证书打包到插件中,并在机器上重新安装才可使用;这给客户正常的业务使用带来非常大的困扰!
为了提升业务可持续性,同时减少用户下载安装的次数,我们实现了一套证书自动升级的机制,发布后,不再需要重新打包插件安装包,而只需要在指定的服务器上更新SSL证书即可,插件将自动下载新的证书并应用。
解决思路:
- 将证书存放到指定的http服务器上,比如http地址为:http://test.com/testcert/
- 在打包插件时,将证书打包到插件安装包中,同时指定证书更新地址为:http://test.com/testcert/
- 插件启动,检测打包的证书是否过期,未过期则直接应用
- 如果打包的证书过期,则下载证书更新地址中的证书进行使用,并保存到本地电脑中,供下次使用
实现效果
我们实现了牛牛截图控件以及利洽远程控制组件的Windows、Macos以及Linux国产化操作系统全系列的功能实现,全面支持证书的自动升级与应用,真正做到了一次部署,持续使用!
只需要运维人员定期的更新服务器上的SSL证书即可,如果再结合上服务端的证书自动续期与更新,就可以做到全自动了!
可以到这个页面进行体验:http://leeqia.com/screencapture/onlinedemo/
具体配置
接下来让我们一起来看看具体的配置何实现:
-
由客户在服务器上分出一个目录来存放要更新的证书,比如其对应的http地址为:http://test.com/testcert/
-
由客户在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
-
将http地址提供过来,我们打包插件的时候,将http://test.com/testcert/打包到插件中,即可完成所有的配置
注: 证书请勿使用泛域名证书,直接申请免费的单域名证书即可。
结语
牛牛截图控件作为目前使用体验最好,功能及兼容性最全面的一款截图控件,专为软件集成而生; 我们立足于为企业和个人提供小巧而精致的插件、产品;再微小的功能,在我们心中都是一个大的产品,从微小处入手,打造极致的产品应用体验!