Windows2008+iis7環境下如何部署多站點(SSL)https;
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
看了這個標題,親搜索過來會是咋樣,干脆直接的說,如果搜索到了這篇文章,我就勸你放棄這個想法,想要使用Windows2008+iis7環境部署多站點ssl,那是不可能的事情,因為IIS7壓根特么的就不支持,我最近研究了好幾天才寫的這篇文章,實屬一個個的都不靠譜,如果想多站點部署SSL,建議使用windows 2012以上(含)系統,均可支持,具體看站內文章?windows server 2012 + IIS8.5部署多個SSL證書綁定https
對于win2003和win2008 iis6或者iis7服務器,由于微軟系統限制一個IP只能配置一個證書,所以才有以上的說辭,那真的沒有辦法了么?辦法還是有的,花錢嘛;往下看
1.如IIS7真有有多個不同的站點想使用證書(SSL、https),可以為這些站的所有域名購買一個多域名證書(多個域名在一個證書里)即可解決此問題;?如果這些不同站的頂級域名是一樣的,是多個不同的子域名,可以購買一個通配符證書即可解決此問題;
2.如果要購買多個不同的證書,也可以為服務器添加ip,為每個證書分配一個不同ip,這樣也可以解決解決win2003和win2008一個ip下只能安裝一個證書的問題;
以上就是Windows2008系統+II7部署多站點證書的方式方法?刺激不?看到上面,干脆就放棄得了,不管多麻煩,我感覺一勞永逸還是可以的,比如換系統;那真的沒有其他的辦法了?有。。。還是錢嘛~~~用下面這個鏈接里的工具就可以解決此問題(購買是需要花點小錢滴)
完整可用網站管理助手(iistool)4.2無限制版帶SSL證書 (可部署支持windows2008+iis7.0 https、SSL多站點部署功能)
那到底有沒有免費的教程呢?有~~必須動手能力要強哦,我還真看了感覺可以的,用nginx反向代理方式部署多站點證書,這是沒辦法中的辦法,這其實也是一個坑的東西;nginx有反向代理的功能,說白啦就是說讓有請求過來的時候它可以根據當前請求的信息來轉發到不同的服務進行處理,
實現方法
讓nginx來接管80和443端口的請求,同時別忘了把iis的443和80端口換成其它的端口。比如555和8080,(如果占用啦這些端口的話)
服務器80端口的處理
當nginx80端口接到請求的時候根據當前請求的域名信息來轉發到對應的iis請求就可以啦。比如iis的站點 www.aaa.com:8080? 因為端口我們已經改為8080啦要記得帶上,下面是nginx的配置
server { listen 80; server_name www.aaa.com; location / { proxy_pass http://www.aaa.com:8080; index index.html index.php index.htm; } }
有其它的網站的話類似添加就可以,
服務器443(https)端口的處理
443處理的情況分兩種,
一種是nginx的https轉發到iis的https
這種方法還得配置iis的https證書,有點麻煩,不推薦使用,但是這里也給記錄下,
iis中添加https站點時是不能用443端口的因為443分配給啦nginx所以添加站點的時候443換成其它的比如444 555等,多個https站點就添加多個每個端口寫的不一樣就ok
這個時候iis中訪問的時候是?https://www.bbb.com:555? 讓用戶用這樣的地址訪問肯定是不行的,使用nginx給轉發一下
server { listen 443 ssl; server_name www.bbb.com; resolver 114.114.114.114 223.5.5.5 valid=3600s; #ssl on; ssl_certificate cert/1_www.bbb.com.crt; ssl_certificate_key cert/2_www.bbb.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #charset koi8-r; #access_log logs/$host.access.log main; location / { proxy_pass https://www.bbb.com:555; index index.html index.htm; } }
另一種是nginx的https請求轉發到iis的http請求
很明顯,這種方法是最簡單的啦,iis上面就不用配置https啦,就正常的處理就行如下;
server { listen 443 ssl; server_name www.bbb.com; resolver 114.114.114.114 223.5.5.5 valid=3600s; #ssl on; ssl_certificate cert/1_www.bbb.com.crt; ssl_certificate_key cert/2_www.bbb.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #charset koi8-r; #access_log logs/$host.access.log main; location / { proxy_pass http://www.bbb.com:8080; index index.html index.htm; } }
到此功能就全實現啦,另外注意點 8080和555 666 等端口不用設置為外網訪問,外網訪問還是只有80 和443就可以啦,其實這么操作,也不咋樣,還是各種問題吧;還是不夠直接,不像Windows 2012那樣操作方便;
windows2008+iis7 部署https證書多站點的解決辦法(此方法測試無啥用,不過也寫出來給想嘗試的人)
第一步:iis里正常綁定要設置證書的網站
第二步:打開文件 C:\Windows\system32\inetsrv\config\applicationHost.config (注:修改之前可以備份一下這個文件)
第三步:修改文件(把https那一行的端口 改成443后面要跟上對應的網址)
第四步:重啟服務器
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!