Piplight 在 Linux 上使用网银

@felixonmars 在博客 Pipelight – 让 Linux 原生 Chromium/Chrome 无缝支持 ActiveX 控件 (看! 网银!) 中对如何通过 pipelight 使用工行网银做了很详细的描述, 不过是以 Arch Linux 作为例子来介绍的. 这里以 Fedora 20 为例, 做一个详细的介绍.

二者 Pipelight 和 ActiveX 控件的配置相同, 在 Pipelight 的安装上略有不同. 另外,Fedora 在安装 wine 时没有安装 winetricks, 需要手动安装. 因此, 相同部分的步骤基本上来自上面的博客.

基本的原理:利用 Chrome 里已有的 npactivex (ActiveX for Chrome) 扩展, 配合 pipelight 提供的 npactivex NPAPI 插件, 将 ActiveX 控件本身用 wine 执行, 并且无缝地嵌入 Chrome 网页中.

1. 安装字体

安装不在仓库里的微软核心字体:

1
2
sudo yum install cabextract
sudo rpm -i http://sourceforge.net/projects/mscorefonts2/files/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

2. 安装 Pipelight

添加仓库, 并安装 Pipelight (对于 Fedora 18 和 Fedora 19 只需要把 Fedora_20 替换成 Fedora_18 或 Fedora_19 即可):

1
2
3
sudo wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Fedora_20/home:DarkPlayer:Pipelight.repo -O /etc/yum.repos.d/pipelight.repo
sudo yum install pipelight
sudo pipelight-plugin --update

3. 启用插件

3.1. 解锁 pipelight 的 npactivex 插件

1
sudo pipelight-plugin --unlock npactivex

看到 "Plugin npactivex is now unlocked" 即为解锁成功

3.2. 启用 npactivex 插件

1
sudo pipelight-plugin --enable npactivex

4. 确认安装成功

启动 chrome 浏览器, 打开 chrome://plugins, 应该可以看到以下内容:

ActiveX hosting plugin for NPAPI
ActiveX hosting plugin for NPAPI r37
Name: ActiveX hosting plugin for NPAPI
Description: ActiveX hosting plugin for NPAPI r37
Version:
Location: /usr/lib/pipelight/libpipelight-npactivex.so
Type: NPAPI
Disable
MIME types:
MIME type Description File extensions
application/x-itst-activex ActiveX (*.ocx)
.ocx
application/activex-manager ActiveXManager

如果看到下列错误:

Pipelight Error (npactivex)!
Something went wrong, check the terminal output

请从终端打开 chromium/google-chrome, 观察终端出错日志

5. 安装winetricks

1
2
3
wget http://winetricks.googlecode.com/svn/trunk/src/winetricks
sudo cp winetricks /path/to/your/bin/
sudo chmod +x /path/to/your/bin/winetricks

6. 安装需要的 ActiveX 控件

下面以工行控件为例:

6.1. 下载工行网银控件安装包

1
wget http://www.icbc.com.cn/icbc/html/download/dkq/icbc_netbank_client_controls.exe

6.2. 安装 mfc42 运行库

1
WINEPREFIX=~/.wine-pipelight winetricks -q mfc42

6.3. 安装

1
WINEPREFIX=~/.wine-pipelight wine icbc_netbank_client_controls.exe

6.4. 故障排除

运行

1
WINEPREFIX=~/.wine-pipelight wine uninstaller --list

如果输出包含以下内容就说明安装成功了, 否则说明以上某一步出错了

{93156467-FD99-4A30-9CA5-8563F4BB8DB3}|||icbc_netbank_client_controls

7. 安装 np-activex extension

扩展可以从 Chrome Web Store 直接安装, 地址:

https://chrome.google.com/webstore/detail/activex-for-chrome/lgllffgicojgllpmdbemgglaponefajn/related

8. 设置 np-activex extension

打开 chrome://chrome/extensions, 点击 "ActiveX for Chrome" 旁边的 "选项" (Options), 浏览到 "ICBC工商银行" 所在的条目, 将"已禁用"改为"已启用".

9. 完成

用 Chrome 打开 https://mybank.icbc.com.cn/icbc/perbank/index.jsp 应该可以正常登陆工行网银了.

上面的博客还给出了其作者对支付宝的测试成功的 npactivex extension 的规则:

Mode: WildChar
Pattern: https://*.alipay.com/*
User Agent: MSIE9
Other helper scripts: dynamic ieevent

不过, 在 npactivex extension 的设置页面中虽然有农业银行的的选项,但是我还是始终没有成功......


参考:

  • Pipelight – 让 Linux 原生 Chromium/Chrome 无缝支持 ActiveX 控件 (看! 网银!)
  • Pipelight - Installation