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