之前一直以为下载工行电子回单时,即使工行提供了sftp服务,星瀚也必须要安装【电子回单代理程序】,实操之后才发现不用。在配置工行电子回单时,走了不少弯路。
论坛中也没有任何一个文档将如何配置工行电子回单,说的清清楚楚的。都是一块一块的内容,比较散。
所以写了这篇文档,希望能帮助到同样使用工行电子回单的项目。
文档主要为四步:生成秘钥、转换秘钥、WINSCP确认连接成功、星瀚配置。
1、 服务器生成秘钥
在连接工行的FTP服务器时,需要通过秘钥文件才能连接。这个秘钥指的是秘钥文件,不是传统意义上的密码。通过以下步骤,共生成4个秘钥文件。见以下具体操作。(我们是在前置机那台机器生成的秘钥,貌似哪台机器都行)
1 )、生成工行登陆密钥
工商银行文件传输服务系统基于SFTP协议开发,合作方在接入时通过ssh-pubkey的公私钥进行身份验证,使用ssh-keygen工具生成密钥方法如下:
a)Linux或Unix系统下生成ssh密钥方法
Linux或Unix系统本身自带ssh-keygen工具,无需单独安装。
在shell命令行界面,输入 ssh-keygen 命令后回车,结果如下:
root:~ # ssh-keygen # 输入命令后回车。
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 保存路径,保持默认回车。
Enter passphrase (empty for no passphrase): # 保持默认回车。
Enter same passphrase again: # 保持默认回车。
Your identification has been saved in /root/.ssh/id_rsa. # 私钥文件保存路径。
Your public key has been saved in /root/.ssh/id_rsa.pub. # 公钥文件保存路径。
The key fingerprint is:
SHA256:nm07Srjiiul8l3qiJmVi1yjb6Ly4DtoynCbMmLiS2uU root@root
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| |
| o S |
|.ooo . o o |
|O*B . o + o |
|^# *.+ o ... |
|^&B+E.. .... |
+----[SHA256]-----+
id_rsa 是登录认证使用的私钥文件,合作方保留,不可以随意转发;id_rsa.pub是登录认证使用的公钥文件,合作方需要提供给工商银行进行登记。
b)Windows系统下生成ssh密钥方法
Windows系统没有自带的ssh-keygen工具,需要安装额外的程序进行辅助,本手册使用git工具提供的git-bash.exe软件进行操作。
git软件下载可以通过如下官网地址进行下载:https://git-scm.com/download,请选择对应的Windows版本下载安装。
安装完成之后,打开安装目录,双击git-bash.exe,会打开一个命令行界面,输入ssh-keygen命令回车,结果如下:
$ ssh-keygen # 输入命令后回车。
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa): # 保存路径,保持默认回车。
Enter passphrase (empty for no passphrase): # 保持默认回车。
Enter same passphrase again: # 保持默认回车。
Your identification has been saved in /c/Users/admin/.ssh/id_rsa. # 私钥文件保存路径。
Your public key has been saved in /c/Users/admin/.ssh/id_rsa.pub. # 公钥文件保存路径。
The key fingerprint is:
SHA256:WvrYejJu6/F0rBGUzb/P3YFNmgnnoi2kbIfnfSswnB4 admin@admin
The key's randomart image is:
+---[RSA 2048]----+
| |
| + |
| o o |
| . . |
| S .... . |
| + E +.B |
| = B *..* o |
| +%.O+..+ .o|
| +B*Oo.oo.+ o|
+----[SHA256]-----+
id_rsa 是登录认证使用的私钥文件,合作方保留,不可以随意转发;id_rsa.pub是登录认证使用的公钥文件,合作方需要提供给工商银行进行登记。
2 )、签名密钥
合作方对文件进行签名时需要使用的密钥对,包含一对签名私钥和签名公钥。
Linux或Unix系统本身自带openssl工具生成签名私钥,Windows还要使用上一步安装的git-bash.exe软件进行操作。
生成签名私钥(Windows和Linux命令相同)
root:~ # cd /root/.ssh/
root:/root/.ssh # openssl genrsa -out private.pem 2048
Generating RSA private key, 2048 bit long modulus
....................+++
..........................+++
e is 65537 (0x10001)
root:/root/.ssh # ls
id_rsa id_rsa.pub private.pem
备注:在linux下使用 openssl genrsa -out private.pem 2048 命令生成私钥文件,其中 private.pem 是私钥文件名,2048 是秘钥长度。
3)、生成签名公钥(Windows和Linux命令相同)
root:/root/.ssh # openssl rsa -in private.pem -outform PEM -pubout -out public.pem
writing RSA key
root:/root/.ssh # ls
id_rsa id_rsa.pub private.pem public.pem
备注:公钥可以从私钥文件中提取:openssl rsa -in private.pem -outform PEM -pubout -out public.pem,其中 public.pem 是签名公钥文件名。
4)、 然后将这几个密钥提供给工行客户经理
2、 使用WINSCP的FTP工具,转换秘钥
1 )、新建FTP连接
文件协议:SFTP
主机名:gw.open.icbc.com.cn 、端口8001、用户名是银行提供的
2 )、选择id_rsa秘钥
a) 因为是初次使用,需要使用这个FTP工具,将id_rsa秘钥转换成is_ras.ppk的秘钥。
b) 上图秘钥文件这里选择第一步中生成的 id_rsa 秘钥
c)系统会提示进行转换,转换后会生成一个id_ras.ppk的文件。这个文件就是工行FTP服务器可接收的秘钥文件。这个秘钥文件后续需要配置到星瀚系统。
3、 WINSCP连接到工行电子回单服务器
将地址和秘钥配置后,WINSCP工具就可以连接到工行服务器了。
证明和工行的FTP连接是通的。
下载某一个ZIP文件,可看到其中的回单文件
4、 星瀚系统配置(不需要安装电子回单代理程序)
1) 、打开【银企云】-【电子回单】中的回单前置机配置
选中工商银行,点修改
2)、选择远程SFTP获取
注意:SFTP本机证书文件要选择第二步生成的id_rsa.ppk文件
在上传时一般会提示文件不符合要求,手工将id_rsa.ppk修改为id_rsa.ppk.txt,再上传就可以了。
上传后,测试连接成功就没问题了。
这里的连接成功,指的是可以连接到工行的FTP服务器
Ps:如果配置的证书文件有问题,就会提示sftp连接失败。
3、下载回单
1)先测试连接,无误后进行下一步
2)配置调度任务,或手工点击下载回单
3)稍后就会看到下载成功提示
4)成功后,可以打开回单进行查看。