首先普通的http配置请参考
【ISA Server 2006发布Web网站】 https://www.bilibili.com/video/BV1qc411v75w/?share_source=copy_web&vd_source=f35b2f2d0d34140bcba81b8b6f8c1b69
本文只一笔带过,讲一下https部分。
正解
由于我维护的是windows server 2003的服务器,版本太老了。导致无法成功安装证书,失败过程见文章末尾。
后来我就曲线救国。
让nginx来处理443端口的所有请求。
确保ISA Server没有占用443端口
要让 ISA Server 2006 不接管 443端口,需要从其配置中释放对443端口的占用。ISA Server 通过 Web 监听器接收HTTPS请求,默认情况下,它会占用443端口。你需要调整或禁用监听443端口的 Web 监听器和发布规则。
具体步骤如下:
- 检查 ISA Server 的 Web 监听器配置
ISA Server 2006 通过 Web 监听器接收 SSL 流量,监听器定义了ISA Server如何监听和处理HTTP/HTTPS请求。首先,我们需要定位那些监听443端口的 Web 监听器。
1.1 打开ISA管理控制台
在服务器上打开 ISA Server 管理控制台 (ISA Server Management)。
1.2 导航到“防火墙策略”
在控制台左侧的树形菜单中,展开 “防火墙策略 (Firewall Policy)”。
在这里,你会看到现有的所有发布规则,查看是否有使用HTTPS(443端口)的Web发布规则。
1.3 找到监听443端口的 Web 监听器
在防火墙策略中,右键点击某个Web发布规则,然后选择 “属性 (Properties)”。
在规则的属性窗口中,点击 “监听器 (Listener)” 选项卡。
这里会显示该发布规则所使用的Web监听器。注意其中是否有监听443端口的 Web 监听器。
1.4 修改或禁用监听器
如果找到了监听443端口的监听器,你有两种选择:
禁用监听器:如果你不再需要这个监听器来处理HTTPS请求,可以直接禁用它。
进入 “监听器” 选项卡,选择正在监听443端口的监听器,右键点击并选择 “禁用”。
修改监听器端口:如果你还需要这个监听器来处理HTTP(80端口)等其他流量,但不希望它占用443端口,你可以修改它的端口配置。
双击该监听器,在属性窗口中,选择 “网络 (Networks)” 选项卡。
在此选项卡下,点击 “连接端口 (Ports)”。
取消勾选 “SSL 端口 443”,并仅保留需要的其他端口(如HTTP的80端口)。
1.5 保存配置并应用
完成监听器的修改或禁用操作后,点击 “确定” 保存配置。
右键点击 “防火墙策略”,选择 “应用 (Apply)”,让更改生效。
仅Nginx占用443
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl;
server_name museum.xxx.com;
index index.html index.htm;
ssl_certificate E:/ssl/museum/museum.xxx.com.pem;
ssl_certificate_key E:/ssl/museum/museum.xxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Nginx config example
location / {
proxy_pass http://192.168.70.158:80;
proxy_http_version 1.1;
proxy_read_timeout 300;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
}
}
}
ISA Server开放https访问
我的最终配置如下:
做完这一步就成功了,ISA Server 负责80端口的转发,443端口由Nginx负责。
总结
为什么不用nginx负责所有的转发呢?历史遗留问题啊,客户的服务器使用ISA Server已经近20年了,一年都配的是80端口的,我的项目是第1个使用https(443)端口的项目。理论上我可以用nginx完全替代所有的请求,但是不太敢,风险太大了。
总算解决了,耗时约 3个多小时。
下面是失败的过程,仅供参考。
下载证书文件
申请证书的方法可以参考:
【nginx配置https】 https://www.bilibili.com/video/BV1TK411X7SE/?share_source=copy_web&vd_source=f35b2f2d0d34140bcba81b8b6f8c1b69
下载的时候选择IIS的证书,获取到的文件名如下:
- www.xxx.com.pfx
- pfx-password.txt
安装证书
双击pfx文件,根据向导一路下一步就行了。要输入密码时,输入pfx-password.txt
中的密码即可。
证书未正确安装
经测试发现证书在高版本系统中有效,到windows 2003中不行
2003中显示如下
在windows 11中是没有问题的