windows2008R2 解决HTTPS配置多域名的问题
前几天给身边的两个朋友做了小程序,后台使用了不同的两套技术,因此需要部署两个站点,我买的阿里云服务器,安装了Windows2008r2服务器版本,在阿里申请了两个不同域名的SSL免费证书,在IIS(版本7.5)上一配置就发现,不支持两个不同的站点绑定不同的HTTPS,怎么办呢?
在网上查,有人说要改iis配置的,有人说要升级到wndows2012的,我尝试着弄了一下,发觉改配置没有起作用,反复折腾无效后,我只有考虑升级操作系统了。
服务器重新装操作系统实在太麻烦了,数据备份,重建环境,很花神,在做的过程中,我突然想起,能否用Nginx代理来试一下呢?
立即登录Nginx官网http://nginx.org/en/download.html,下载最新版本的| nginx/Windows-1.14.0 |稳定版。
然后解压,进入配置目录nginx-1.14.0\conf文件夹,打开nginx.conf文件,把http那部分站点配置注释掉,再把https的配置打开。
然后去阿里云ssl证书那里下载针对nginx的证书文件,拷贝到conf文件夹,把conf文件同步替换成证书文件名。
再把proxy_pass 配好,然后start nginx.exe启动,咦,成了,完美解决多站点多ssl域名的问题。不到20分钟,就完美解决这个问题了。
最后,记得在windows防火 墙做一个新的针对tcp 443端口允许访问的规则,这样外网就可以访问了。
nginx.conf文件内容示意如下:
#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;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# HTTPS server
#
server {
listen 443 ssl;
server_name localhost;
ssl_certificate cert.pem; #你在阿里云ssl申请免费证书时针对nginx的证书文件,阿里扩展名是.crt
ssl_certificate_key cert.key;#你在阿里云ssl申请免费证书时针对nginx的证书文件
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://你要转发到iis的站点地址;
}
}
}
网友评论