現(xiàn)在不管是微信小程序還是一些其他方面的接口,都強(qiáng)制要求實(shí)現(xiàn)https的鏈接,特別是微信小程序還要求是1.2以上的SSL,基本上就把win2003的服務(wù)器逼上絕路了。
這個(gè)只是一個(gè)思路,野狼沒有嘗試過,應(yīng)該是行得通的。不管你是linux系統(tǒng)還是win系統(tǒng)也都能安裝apache。但如果你對(duì)win系統(tǒng)比較熟悉,不懂linux或者對(duì)于IIS熟悉不太懂a(chǎn)pache等,可能就麻煩一些。
win2003、win2008野狼已經(jīng)驗(yàn)證過,沒有辦法實(shí)現(xiàn)一個(gè)服務(wù)器多個(gè)ssl證書。但是win2012 r2就不一樣了,可以跟綁定普通http域名一樣,寫域名頭,這樣就實(shí)現(xiàn)了一個(gè)服務(wù)器上可以用多個(gè)證書的。
附1:服務(wù)器多站點(diǎn)多域名HTTPS實(shí)現(xiàn)
更新時(shí)間:2017-07-31 14:21:01
假設(shè)有這樣一個(gè)場(chǎng)景,我們有多個(gè)站點(diǎn)(例如site1.marei.com,site2.marei.com和site3.marei.com)綁定到同一個(gè)IP:PORT,并區(qū)分不同的主機(jī)頭。我們?yōu)槊恳粋€(gè)SSL站點(diǎn)申請(qǐng)并安裝了證書。在瀏覽網(wǎng)站時(shí),用戶仍看到證書不匹配的錯(cuò)誤。
1. IIS中實(shí)現(xiàn)
問題原因
當(dāng)一個(gè)https的請(qǐng)求到達(dá)IIS服務(wù)器時(shí),https請(qǐng)求為加密狀態(tài),需要拿到相應(yīng)的服務(wù)器證書解密請(qǐng)求。由于每個(gè)站點(diǎn)對(duì)應(yīng)的證書不同,服務(wù)器需要通過請(qǐng)求中不同的主機(jī)頭來判斷需要用哪個(gè)證書解密,然而主機(jī)頭作為請(qǐng)求的一部分也被加密。最終IIS只好使用第一個(gè)綁定到該IP:PORT的站點(diǎn)證書解密請(qǐng)求,從而有可能造成對(duì)于其他站點(diǎn)的請(qǐng)求失敗而報(bào)錯(cuò)。
解決方案
第一種解決方案將每個(gè)https站點(diǎn)綁定到不同的端口。但是這樣的話客戶端瀏覽網(wǎng)頁時(shí)必須手動(dòng)指定端口,例如 https://site.domain.com:444
第二種解決方案是為每個(gè)站點(diǎn)分配一個(gè)獨(dú)立的ip,這樣沖突就解決了,甚至主機(jī)頭也不用添加了。
第三種解決方案是使用通配證書。我們采用通配證書頒發(fā)給.domain.com,對(duì)于我們的示例中,應(yīng)該采用頒發(fā)給.marei.com的證書,這樣任何訪問該domain的請(qǐng)求均可以通過該證書解密,證書匹配錯(cuò)誤也就不復(fù)存在了。
第四種解決方案是升級(jí)為IIS8,IIS8中添加的對(duì)于SNI(Server Name Indication)的支持,服務(wù)器可以通請(qǐng)求中提取出相應(yīng)的主機(jī)頭從而找到相應(yīng)的證書。
SNI開啟方式請(qǐng)參考http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability
2. Nginx中實(shí)現(xiàn)
打開 Nginx 安裝目錄下 conf 目錄中打開 nginx.conf 文件,找到
server {
listen 443;
server_name domain1;
ssl on;
ssl_certificate 磁盤目錄/訂單號(hào)1.pem;
ssl_certificate_key 磁盤目錄/訂單號(hào)1.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
在上述基礎(chǔ)上,再添加另一段配置
server {
listen 443;
server_name dommain2;
ssl on;
ssl_certificate 磁盤目錄/訂單號(hào)2.pem;
ssl_certificate_key 磁盤目錄/訂單號(hào)2.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
通過上述配置在Nginx中支持多個(gè)證書
Apache配置HTTPS虛擬主機(jī)共享443端口
Listen 443
NameVirtualHost *:443
……
ServerName www.example1.com
SSLCertificateFile common.crt;
SSLCertificateKeyFile common.key;
SSLCertificateChainFile ca.crt
……
……
ServerName www.example2.com
SSLCertificateFile common2.crt;
SSLCertificateKeyFile common2.key;
SSLCertificateChainFile ca2.crt
……
附2:IIS6上實(shí)現(xiàn)多域名證書
檢查WINDOWS2003是否已經(jīng)升級(jí)到SP1以上版本,如果沒有升級(jí)SP1,則后續(xù)步驟將無法完成確保使用的證書是多域名,或者是通配符證書,兩個(gè)網(wǎng)站必須都使用這個(gè)證書,如果這個(gè)證書的CN和SAN不包含著2個(gè)網(wǎng)站的域名,就會(huì)報(bào)警告首先按正常的流程,為站點(diǎn)1,安裝SSL證書,并將SSL端口配置為443。對(duì)站點(diǎn)2,選擇分配證書,并選擇站點(diǎn)1使用的證書,并將SSL端口配置為其他端口號(hào)(444,445,446...)
IIS SNI 4請(qǐng)用本機(jī)管理員登入系統(tǒng),啟動(dòng)命令行程序“cmd”。運(yùn)行以下指令:
cscript.exe c:inetpubadminscriptsadsutil.vbs set /w3svc/站點(diǎn)標(biāo)識(shí)符/SecureBindings ":443:主機(jī)頭"
回到IIS6控制臺(tái),刷新,可以發(fā)現(xiàn)網(wǎng)站2的SSL端口已經(jīng)改成443了。
IIS服務(wù)器多域名SSL證書綁定443端口解決方案
默認(rèn)情況一個(gè)服務(wù)器的IIS只能綁定一個(gè)HTTPS也就是443端口
要實(shí)現(xiàn)多個(gè)站點(diǎn)對(duì)應(yīng)HTTPS只能更改IIS配置
1、默認(rèn)情況一個(gè)服務(wù)器的IIS只能綁定一個(gè)HTTPS也就是443端口
要實(shí)現(xiàn)多個(gè)站點(diǎn)對(duì)應(yīng)HTTPS只能更改IIS配置
首先把每個(gè)站點(diǎn)分配個(gè)不同端口,如443.444.445…(證書一定要是多域的)
2、然后在:C:Windowssystem32inetsrvconfigapplicationHost.config
找到
<binding protocol="https" bindingInformation="*:443" />
<binding protocol="https" bindingInformation="*:444" />
<binding protocol="https" bindingInformation="*:445" />
修改成:
<binding protocol="https" bindingInformation="*:443:www.domain.com" />
<binding protocol="https" bindingInformation="*:443:www.domain.com" />
<binding protocol="https" bindingInformation="*:443:www.domain.com" />
切記需要對(duì)應(yīng)的每個(gè)站點(diǎn)都修改。
3、然后在iis的站點(diǎn)上重新選擇下證書,重啟iis站點(diǎn)。
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)