对方服务器使用的是TLS1.3,并关闭了一些算法套件,使得.NET FRAMEWORK 4.8 、.NET 5 都无法连接。
只能用中转方案解决。
nginx配置:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; underscores_in_headers on; #sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8822; server_name 127.0.0.1; proxy_ssl_server_name on; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; location / { resolver 8.8.8.8; set $backend "gzp.echase.cn"; proxy_pass https://$backend; } } }
原本要访问:https://gzp.echase.cn/api/chasepay/echasePay
程序内写成:http://127.0.0.1:8822/api/chasepay/echasePay
其中:127.0.0.1 是部署在本机的nginx。如果nginx部署在其它机器,把它改成其它机器ip,防火墙开放8822端口。
核心思路:
程序和nginx间用HTTP通讯。
nginx和对方服务器间用 HTTS 。