代码签名:

  • 自定义测试(无法自动更新)签名:
  1. 钥匙串访问=>证书助理=>创建证书=>自定签名的根证书,代码签名
  2. export CSC_NAME=”Electron Auto Update”
    https://www.electron.build/code-signing)
    macOS and Windows code signing is supported. Windows is dual code-signed (SHA1 & SHA256 hashing algorithms).
    
    

On a macOS development machine, a valid and appropriate identity from your keychain will be automatically used.

CSC_NAME macOS-only Name of certificate (to retrieve from login.keychain). Useful on a development machine (not on CI) if you have several identities (otherwise don’t specify it).

  • 从Xcode里面 偏好设置-accounts-manage certificates +developer id application ,加到钥匙串里面即可

包签名

无法打开“XXXPro”,因为Apple无法检查其是否包含恶意软件。

已阻止使用“XXXPro”,因为来自身份不明的开发者 仍要打开

自定义安装界面

https://www.electron.build/configuration/dmg
可以在electron-builder的configuration里面进行配置:
macOS我们目前是dmg的产出,可以按照文档进行配置

创建目录路径选择

根目录:/
用户目录:~
在根目录创建文件的时候会出现:read-only file system

查看日志

cd ~/Library/Cache
cd ~/Library/Application Support

cd ~/Library/Logs

公证

现有软件,已用集团账号导出的证书进行了code signing —— 代码的开发者签名10.14

https://support.apple.com/zh-cn/guide/mac-help/mh40616/mac
(给用户看的操作链接)

https://support.apple.com/zh-cn/HT202491
(高版本的系统还需要公证) Catalina 及以上版本

2019的wwdc19 公证面面观
公证就是关于在分发前识别和拦截恶意的Mac软件,而无需App Review团队或Mac App Store的参与。在去年推出。
公证方法:
https://oldj.net/article/2019/12/29/electron-builder-sign-and-notarize-for-macos/

https://github.com/electron/electron-notarize

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 公证操作执行命令:
xcrun altool --notarize-app --primary-bundle-id "cn.xxx.xx.xxxx" --username "xxx@xxx.cn" --password "apppasswd" --asc-provider "providerNameXXX" -t osx --file xxx.dmg
// 说明:
// xxx.dmg 替换为要公证的文件名,执行命令和要公证的文件包(xxx.dmg)在同一目录下
// cn.xxx.xx.xxxx 替换成应用到bundleid
// providerNameXXX 是providerName,根据邮箱和密码查出来的
xcrun altool --list-providers --username "xxx@xxx.cn" --password "apppasswd"
// 结果如下,则上传成功:
No errors uploading 'xxx.dmg'.
RequestUUID = "一串字符串"
// 公证成功会收到邮件:
// 或者可以通过命令查公证状态:
xcrun altool --notarization-info "RequestUUID" --username "xxx@xxx.cn" --password "apppasswd"
公证成功后,安装APP,不会再有安全提示拦截(每次上线新版本前需进行公证)

杀毒软件误杀问题处理

360(Win)

  • 开启360,第一次安装或更新的软件的时候,360会弹出“有程序试图修改关键程序DLL文件”的警告
  • 用公司账号登录360软件开放平台。选择首页的提交软件检测并填写相关信息,等待审核。审核通过后解决(在第一次更新时360还是会弹窗,后续每次更新客户端时,在打包后都需执行上述过程,则不会再次弹窗)

McAfee(Win)

  • McAfee 我们当时遇到的问题是,集团给员工配置的电脑,会安装McAfee ,程序会McAfee 被删除。
  • 目前解决方案:
  1. 如果时集团配备的电脑自带的McAfee 软件,问题已解决,可以通过集团统一配置白名单,放行内部软件 ;
  2. 如果自己装的McAfee 软件,则有关闭实时扫描的权限,可以关闭实时扫描,避免误杀;
  • 集团那边收到的信息是,软件触发了自适应威胁防护清理,因为软件的信誉低于配置的清理阈值;
  • McAfee 关于误杀的问题,需要我们这边提供软件的英文操作说明,然后进行审核;
  • 厂商给的文档里面是让提高软件信誉度(在TIE服务器或McAfee GTI上的信誉值)
  • 安全部门给到开发部门的紧急解决流程
    1
    2
    3
    4
    - 提供一个登录账号用于人工排查
    - 先人工安装排查一下是否有异常进程,并用其他杀毒软件交叉验证,尽快反馈结果
    - 同时请将问题反馈给Mcafee厂商,判断是否是误报或是如何判断为木马的,以便产品开发进行修改。
    - 如果人工排查结果没有发现异常,可以先开启白名单,避免影响业务人员的工作。同时跟进Mcafee的反馈。
  • 软件如果嵌入网页,尽量https,http请求很容易被判定为高风险
  • 我们这边本地没有部署TIE服务器