AS2 服务器
可以根据官方文档教程安装环境并启动项目
该项目是基于 django 的,所以使用方式和 django 基本一致
该项目是基于 django 的,所以使用方式和 django 基本一致
关于 AS2 的介绍
AS2是一种通过互联网安全地传输 EDI(电子数据交换)或其他业务数据的通信协议。
大致流程为:

建立连接
- 需要交换信息,如 AS2 ID、URL、证书、公钥等。
- 需要提前配置好信息,这样 AS2 服务器才能准确验证身份并接收。
发送数据
- 发送方服务器准备数据
- 打包
- 签名
- 加密
- 通过 HTTP(S) 发送到接收方的 AS2 URL
接收数据
- 接收方收到后
- 解密
- 验证签名
- 解包文件
- 传入系统
返回 MDN(消息处理通知)
- 接收方会返回 MDN 给发送方,表示数据:
- 成功收到
- 验证通过
- 出错
发送方验证 MDN
- 发送方解析 MDN,确认此次通信成功。如果没有成功,可自动重试或告警
部署 AS2
安装环境
$ pip install django-pyas2
$ django-admin startproject django_pyas2 .
配置项目
修改 setting.py 文件
INSTALLED_APPS = (
...
'pyas2',
)配置 urls.py
from django.urls import include
urlpatterns = [
path('pyas2/', include('pyas2.urls')),
...
]进行迁移
python manage.py migrate
创建用户
启动服务器 (生产环境可以和普通 django 项目一样配置 nginx 反向代理和uwsgi)python manage.py migrate
python manage.py runserver
配置 AS2
通过 http://localhost:8000/admin 进入后台
AS2 通信需要验证身份,所以我们应该在服务器中提前配置好
- 我们自己的信息(as2-id、私钥、证书)
- 客户信息(as2-id、URL、公钥、证书)
配置公钥


配置私钥
配置客户





配置组织(organization)
配置我们自己的信息


发送文件
手工发送


自动发送
参考django-pyas2 扩展实现监控功能扩展
运行扩展
python manage.py filewatcher
可以封装成 systemctl 指令
systemctl start django_pyas2-extend-filewatcher.service
检查结果


