档案软件通信加密零门槛实操指南 手把手完成端到端加密落地
前置准备
本次实操基于开源工具实现,无需改造现有档案软件代码,零门槛落地,仅需准备服务器/客户端操作权限,执行对应命令即可完成工具安装:
- Ubuntu/Debian系统执行安装命令:
``` sudo apt update && sudo apt install openssl stunnel4 -y ``` - CentOS/RHEL系统执行安装命令:
``` sudo yum install openssl stunnel -y ``` - Windows系统通过官方包管理器安装,执行命令:
``` winget install ShiningLight.OpenSSL stunnel.stunnel ```
内部部署的档案系统使用自签名证书即可满足加密要求,等保合规场景只需将后续生成的自签名证书替换为CA机构颁发的证书即可,操作步骤完全一致。
实操步骤
第一步:生成加密证书与私钥
我们需要生成服务端的加密证书和私钥,直接复制以下命令依次运行即可,遇到填写信息提示直接按回车留空即可:
- 生成2048位RSA私钥:
``` openssl genrsa -out archive_server.key 2048 ``` - 生成证书签名请求:
``` openssl req -new -key archive_server.key -out archive_server.csr ``` - 生成有效期10年的自签名证书:
``` openssl x509 -req -days 3650 -in archive_server.csr -signkey archive_server.key -out archive_server.crt ```
生成完成后得到两个核心文件:archive_server.key(私钥,需保密存储)、archive_server.crt(证书,可公开分发)。
关键权限配置:Linux系统必须执行以下命令限制私钥访问权限,否则加密服务会启动失败: ``` sudo mkdir -p /etc/archive/cert sudo mv archive_server. /etc/archive/cert/ sudo chmod 600 /etc/archive/cert/archive_server.key ```
第二步:根据档案软件架构配置加密
目前主流档案软件分为两种架构,对应不同配置方式,均可直接照搬修改:
场景1:B/S架构(浏览器访问的档案系统)

大部分B/S架构档案系统基于Nginx反向代理,直接在Nginx配置文件中添加以下配置,替换成你的域名和证书路径即可:
``` server { listen 443 ssl; server_name 你的档案系统域名; ssl_certificate /etc/archive/cert/archive_server.crt; ssl_certificate_key /etc/archive/cert/archive_server.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass http://127.0.0.1:你的原档案系统端口; } } 原HTTP请求自动跳转HTTPS加密 server { listen 80; server_name 你的档案系统域名; return 301 https://$server_name$request_uri; } ```配置完成后执行sudo nginx -t验证配置无错,再执行sudo nginx -s reload重载配置即可生效。
场景2:C/S架构(客户端软件直连服务器)
对于自定义TCP通信的C/S档案软件,无需修改原有软件代码,用Stunnel搭建加密隧道即可,操作如下:
服务端配置:新建/etc/stunnel/archive.conf,写入以下内容,修改对应端口即可:
```
cert = /etc/archive/cert/archive_server.crt
key = /etc/archive/cert/archive_server.key
pid = /var/run/stunnel-archive.pid
accept = 8443
connect = 127.0.0.1:原档案服务端口
```
然后启动Stunnel服务:Ubuntu执行sudo systemctl enable stunnel4 && sudo systemctl start stunnel4,CentOS执行sudo systemctl enable stunnel && sudo systemctl start stunnel。
客户端配置:客户端新建archive_client.conf,写入以下内容:
```
client = yes
cert = C:\Program Files\stunnel\cert\archive_server.crt
accept = 127.0.0.1:8081
connect = 你的档案服务器公网IP:8443
```
启动客户端Stunnel后,将原有档案客户端的连接地址从服务器IP:原端口改成127.0.0.1:8081即可,所有通信都会自动走加密隧道。
第三步:验证加密有效性
执行以下命令即可验证加密是否配置成功,替换成你的服务器地址和加密端口: ``` openssl s_client -connect 你的服务器IP:加密端口 -showcerts ```
如果输出末尾显示Verify return code: 0 (ok),说明加密握手成功,所有通信已经是加密传输。你也可以通过Wireshark抓包验证,所有通信内容都会显示为TLS密文,不会泄露明文档案数据。
常见坑点排查
- 加密服务启动失败:90%的概率是私钥权限不足,重新执行
chmod 600 /path/to/your.key即可解决;剩余情况是证书路径写错,检查配置文件中的绝对路径是否正确。 - 连接超时:检查服务器防火墙和云服务商安全组,是否放行加密端口,UFW防火墙执行
sudo ufw allow 加密端口/tcp,Firewalld执行sudo firewall-cmd --add-port=加密端口/tcp --permanent && sudo firewall-cmd --reload。 - 浏览器提示不安全:自签名证书默认不受浏览器信任,内部使用场景可以手动将证书添加到系统信任列表,等保合规场景替换成CA机构颁发的信任证书即可解决。
以上配置完成后,档案软件所有端到端通信都会被加密,满足数据传输安全要求,整个过程无需修改现有档案软件的任何代码,1小时内即可完成落地。