致远 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 配置可用。

相关推荐
聚美智数2 小时前
网站HTTP状态查询-SEO优化
网络·网络协议·http
是真的小外套4 小时前
第9章:网络层安全协议 IPSec 学习笔记
网络·网络协议·tcp/ip
云梦谭4 小时前
WebSocket 协议详解:从 HTTP 握手到全双工通信
websocket·网络协议·http
中屹指纹浏览器svip5 小时前
静态 IP和动态 IP,搭配指纹浏览器该怎么选?
网络·网络协议·tcp/ip·中屹指纹浏览器
木子n15 小时前
车载以太网与SOME/IP服务化通信实战-02.状态机与订阅:SOME/IP-SD的三态迁移、重传账与上电风暴
嵌入式硬件·网络协议·车载系统·车载以太网·some/ip
ITxiaobing20236 小时前
选型不踩坑:IPinfo 之外,IP 地址定位服务还有哪些可选项
网络·网络协议·tcp/ip
用户2788607285677 小时前
战争雷霆换区记录:字段里的「未知」不能写成正常
网络协议·游戏开发
日常筹谋记8 小时前
仓储监测无线化改造经验:明治无线组网方案与WL系列Master总站落地复盘
网络·网络协议
溜达的大象9 小时前
管家婆远程访问实战:SQL Server 2022配置、PC分机端修改与固定TCP连接
网络·网络协议·tcp/ip
白帽攻防录11 小时前
SRC 挖洞:QUIC 协议栈双 RCE,HTTP/3 的新攻击面怎么挖
网络·网络协议·http·网络安全·http/3