致远 OA HTTPS 配置避坑指南

致远 OA HTTPS 配置避坑指南

环境说明

  • 产品版本 :致远 A6-V5 企业版 V5.6SP1
  • 部署环境Windows Server 2008 R2 Standard
  • 应用部署方式单机 Tomcat 部署
  • Tomcat 端口8080
  • HTTPS 方式:Nginx 反向代理
  • 域名oa.xxxx.com
  • HTTPS 端口4433 (本机443端口已被其他服务占用)

一、需求简述

将致远 A6-V5 企业版 V5.6SP1 从原来的:

bash 复制代码
http://oa.xxxx.com:8080

改为通过 Nginx 对外提供 HTTPS 访问:

bash 复制代码
https://oa.xxxx.com:4433

并解决 HTTPS 场景下常见的报错:

  • 页面可打开但提交报错
  • 浏览器提示混合内容
  • 页面中仍然生成 http:// 地址
  • 400 The plain HTTP request was sent to HTTPS port

二、致远OA实现HTTPS加密访问的逻辑图

三、NGINX准备

Windows Server 中安装NGINX参考文章:Windows Server 部署 Nginx 反向代理指南

本环境最终使用的思路:

  • 80 端口跳转到 HTTPS
  • 4433 提供 HTTPS
  • 反向代理到本机 OA Tomcat 的 8080
  • 使用sub_filter模块对页面中的 http://oa.xxxx.com 做内容替换,修复老版本 A6V5 输出 HTTP 地址的问题
1、配置NGINX

nginx.conf 推荐配置内容如下:

nginx 复制代码
worker_processes  auto;

events {
    worker_connections  2048;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout 65;
    keepalive_requests 1000;
    server_tokens off;
    client_max_body_size 60m; #文件上传大小限制

    tcp_nopush on;
    tcp_nodelay on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 5;
    gzip_min_length 1k;
    gzip_buffers 16 8k;

    gzip_types
        text/plain
        text/css
        text/html
        text/xml
        application/javascript
        application/x-javascript
        text/javascript
        application/json
        application/xml
        application/xhtml+xml;

    server {
        listen 80;
        server_name oa.xxxx.com;
        return 301 https://$host:4433$request_uri;
    }

    server {
        listen 4433 ssl;
        server_name oa.xxxx.com;

        ssl_certificate      E:/nginx-1.16.1/nginx-1.16.1/ssl/ssl.pem;
        ssl_certificate_key  E:/nginx-1.16.1/nginx-1.16.1/ssl/ssl.key;

        ssl_protocols TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ {
            proxy_pass http://127.0.0.1:8080;

            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_redirect http:// https://;
            proxy_set_header Accept-Encoding "";

            sub_filter_once off;
            sub_filter_types text/css application/javascript application/x-javascript text/javascript;
            sub_filter 'http://oa.xxxx.com' 'https://oa.xxxx.com';

            expires 7d;
            add_header Cache-Control "public";

            proxy_connect_timeout 300;
            proxy_read_timeout 300;
            proxy_send_timeout 300;
        }

        location / {
            proxy_pass http://127.0.0.1:8080;

            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_redirect http:// https://;
            proxy_set_header Accept-Encoding "";

            sub_filter_once off;
            sub_filter_types text/html text/css text/xml text/plain application/javascript application/x-javascript text/javascript application/json;
            sub_filter 'http://oa.xxxx.com' 'https://oa.xxxx.com';

            proxy_connect_timeout 300;
            proxy_read_timeout 300;
            proxy_send_timeout 300;
        }
    }
}

sub_filter 是本次修复的关键,它的核心作用是在响应内容返回给客户端之前,对 HTML 等文本内容进行实时、轻量级的字符串替换,而无需修改后端代码或源文件。

2、放置 SSL 证书

把SSL证书文件.pem.key 文件放入目录(自定义)

bash 复制代码
E:\nginx-1.16.1\nginx-1.16.1\ssl\

并确认配置中的路径一致:

nginx 复制代码
ssl_certificate      E:/nginx-1.16.1/nginx-1.16.1/ssl/ssl.pem;
ssl_certificate_key  E:/nginx-1.16.1/nginx-1.16.1/ssl/ssl.key;

四、修改OA配置

对于 A6V5,不建议优先改 Tomcat HTTPS,而是需要在服务器本地打开【协同系统配置】------【系统参数设置】------找到参数【internet.site.url】,并将原来的http://oa.xxxx.com:8080改成https://oa.xxxx.com:4433

1、服务器本地打开【协同系统配置】
2、修改参数

五、效果检查

完成以上配置后,通过访问 【oa.xxxx.com】,可自动跳转https://oa.xxxx.com:4433,页面可正常提交表单,不再报错,浏览器不再提示混合内容拦截,说明 HTTPS 配置可用。

相关推荐
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http
SendTomo3 小时前
SendTomo 与 send.wang 全景对比评测与实战指南
网络·网络协议·tcp/ip·webrtc·p2p
ocean21033 小时前
2025-2026年计算机网络面试高频知识点洞察
计算机网络·面试·职场和发展·https·tcp·面试真题·秋招春招
今夕资源网4 小时前
Windows 本地 HTTPS 配置教程:使用 CertTool 创建自签名证书并部署到宝塔
windows·网络协议·https
天天喝旺仔5 小时前
gRPC 流式通信实战:从一元调用到双向流,吃透四种 RPC 模式(Go 版)
分布式·http·微服务·rpc·go
艾莉丝努力练剑6 小时前
【AI大模型接入SDK】ChatGPT API
网络·c++·人工智能·websocket·网络协议·学习·chatgpt
4A广告文案13 小时前
名创优品在成都开了家“乐园”,顺便造了个新IP
网络·网络协议·tcp/ip
uoKent15 小时前
计网中的HTTP/HTTPS
网络协议·http·https
wjcroom18 小时前
一个可以在线多人玩的五子棋开发与布署方法-WebRTC和WebSocket的测试方法
websocket·网络协议·webrtc
ControlRookie21 小时前
第22篇_源码加更 04|chunked 解码器和十六进制块长度解析
http·codesys·plc通信·开源源码