HTTPS是啥就沒得說了,基于SSL的HTTP
然后呢绵疲,如果要在服務(wù)器上啟用HTTPS,需要一個CA證書
CA證書分幾種:
域名型SSL證書(DV SSL):信任等級普通臣疑,只需驗證網(wǎng)站的真實性便可頒發(fā)證書保護網(wǎng)站盔憨;
企業(yè)型SSL證書(OV SSL):信任等級強,須要驗證企業(yè)的身份讯沈,審核嚴格郁岩,安全性更高;
增強型SSL證書(EV SSL):信任等級最高缺狠,一般用于銀行證券等金融機構(gòu)问慎,審核嚴格,安全性最高挤茄,同時可以激活綠色網(wǎng)址欄如叼。
作者:李是個好人
鏈接:https://www.zhihu.com/question/19578422/answer/114210307
來源:知乎
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)穷劈。
所以咱一般搞一個DV的就行
本來打算做一個自己簽名的證書笼恰,畢竟主要是為了加密
但是自己簽名的證書瀏覽器不認,提示證書不安全啥的(不要客戶端導(dǎo)入證書到信任才可以)歇终,加上ios訪問的時候會提示不被信任社证,不能訪問,所以放棄了
環(huán)境:我們是給客戶的服務(wù)器安裝證書练湿,客戶那邊是一個二級域名被定向到我們的一臺內(nèi)網(wǎng)服務(wù)器猴仑,服務(wù)器是Windows Server2008 IIS7+
記錄--這里是簽一個受信的域名證書
- 找一個SSL證書頒發(fā)機構(gòu)审轮,我找的是StartSSL
- 在網(wǎng)站上驗證對域名的所有權(quán)肥哎,這個我嘗試了兩個機構(gòu)的驗證方式辽俗,都是使用WhoIs查詢當前域名的注冊信息,通過郵箱來驗證的篡诽,這個如果是自己的網(wǎng)站崖飘,一般聯(lián)系人是自己,直接接受驗證碼就好杈女,我們是找客戶要的聯(lián)系郵箱接收的驗證碼朱浴。我還試了一下GEOTrust,這個好像是可以通過在網(wǎng)站上放一個文件达椰,文件名是MD5翰蠢,內(nèi)容是SHA1,這個在提交信息之后會給你啰劲,能通過你提交的域名訪問到就可以認證梁沧,但是這個免費的只有90天,所以我就沒繼續(xù)了蝇裤。
- StartSSL的話廷支,提交驗證碼之后就可以生成一個免費的證書,可以用三年栓辜,然后將就可以把證書下載下來恋拍,導(dǎo)入到iis就可以了(當然這里的證書IIS是不認的,可以跳過下面這一段藕甩,直接看最后)
當然真做起來當然是沒有這么簡單了施敢,對需要受信證書的同學(xué)來說,以下這一段是廢話辛萍,可以跳過悯姊。。贩毕。
我一開始的時候是想弄一個自簽名的證書悯许,所以搜索了好久,網(wǎng)上也看到了好多的教程辉阶,最終找到了一個OpenSSL證書生成(Windows環(huán)境)先壕,本來以為就水到渠成了,照著做一遍就ok谆甜,但是現(xiàn)實打了臉垃僚,首先這東西需要用到OpenSSL,我機器上沒有规辱,然后還要用Perl谆棺,我試了一下,安裝了Perl罕袋,也下載了OpenSSL改淑,然后發(fā)現(xiàn)這東西需要現(xiàn)編譯才能用碍岔,我要崩潰了,朵夏,蔼啦,但是!感謝互聯(lián)網(wǎng)仰猖,我又找到了教程Win32下VC編譯OpenSSl捏肢,好吧,按照教程來一遍饥侵,應(yīng)該就可以了吧鸵赫。。躏升。然后發(fā)現(xiàn)奉瘤,他用的是VC命令行編譯,恩煮甥,我連VC開發(fā)環(huán)境都沒有盗温,我機器上裝了(或者裝過)VS2012,VS2013,VS2015,所以我以為VC是小意思成肘,結(jié)果卖局。。双霍。恩砚偶,你們知道了,不好使……感謝廖雪峰大佬的教程洒闸,我找了半天染坯,終于找到了這個,直接來了一個shell腳本丘逸,恩单鹿,Linux的……所以,我又稍微的失望了一下深纲,接下來用實驗樓的這個功能仲锄,可以用一個在線的Linux環(huán)境,將剛剛廖雪峰教程里頭的腳本粘貼到Linux環(huán)境下湃鹊,修改執(zhí)行權(quán)限儒喊,直接執(zhí)行就可以生成一個自簽名的證書。我以為到這里我的行程就改結(jié)束了币呵。怀愧。。但是還沒有。芯义。肛搬。拿到了crt文件,然后發(fā)現(xiàn)iis無法導(dǎo)入毕贼,說這個缺少key,好吧好吧蛤奢,然后我又找到了這個文章SSL證書轉(zhuǎn)換鬼癣。至此,我已經(jīng)搞定了所有需要做的事情啤贩。得到一份腳本:
#!/bin/sh
# create self-signed server certificate:
read -p "Enter your domain [www.example.com]:" DOMAIN
echo "Create Server Key..."
openssl genrsa -des3 -out $DOMAIN.key 1024
echo "Create server certificate signing request..."
SUBJECT="/C=US/ST=Mars/L=iTranswarp/O=iTranswarp/OU=iTranswarp/CN=$DOMAIN"
openssl req -sha256 -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr
echo "Remove password..."
mv $DOMAIN.key $DOMAIN.origin.key
openssl rsa -in $DOMAIN.origin.key -out $DOMAIN.key
echo "Sign SSL certificate..."
openssl x509 -sha256 -req -days 3650 -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt
openssl pkcs12 -export -out $DOMAIN.pfx -inkey $DOMAIN.key -in $DOMAIN.crt
echo "Done"
以上待秃,執(zhí)行一遍,輸入六次密碼就可以生成一個自簽名的CA證書.pfx文件(IIS就認這個)痹屹,注意這個密碼不要忘記了章郁,導(dǎo)入的時候要用(按理說前面的跟后面的可以不一樣,因為中間有一步是刪除密碼志衍,但是都輸入同一個密碼肯定不會出錯就是了)暖庄。
接到廢話之前的內(nèi)容,從StartSSL上申請到證書以后楼肪,下載的文件是crt文件培廓,這個IIS是不認的,所以我們需要把crt文件和key文件合并起來春叫,如果需要知道詳細內(nèi)容肩钠,請參考廢話內(nèi)容
反正我最后得到這樣一份腳本
#!/bin/sh
# create self-signed server certificate:
read -p "Enter your domain [www.example.com]:" DOMAIN
echo "Create Server Key..."
openssl genrsa -des3 -out $DOMAIN.key 1024
echo "Create server certificate signing request..."
SUBJECT="/C=US/ST=Mars/L=iTranswarp/O=iTranswarp/OU=iTranswarp/CN=$DOMAIN"
openssl req -sha256 -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr
echo "Done"
輸入一個域名,輸幾次密碼暂殖,就可以生成.key文件和.csr文件价匠,這個文件內(nèi)容可以粘貼到StartSSL的申請里面,然后我們就有了一個key文件和一個受信任的.crt證書呛每,現(xiàn)在踩窖,參考廢話里面的腳本,將這兩個文件放在一起晨横,執(zhí)行最后一句
openssl pkcs12 -export -out [DOMAIN].pfx -inkey [DOMAIN].key -in [DOMAIN].crt
[DOMAIN]需要替換成你的文件名毙石,然后就得到了一個受信任的.pfx文件,這下真的可以導(dǎo)入到IIS中了
最后颓遏,實驗樓是不允許上傳文件的徐矩,所以如果是自簽名的證書,直接用它就可以叁幢,如果不是自簽名的滤灯,不好意思,我最后是被逼的沒辦法,只好裝了一個Ubuntu(據(jù)說OpenSSL一般發(fā)行版Linux都會裝鳞骤,經(jīng)過我的實驗窒百,Ubuntu是裝了的),如果你能搞定Windows環(huán)境下安裝編譯OpenSSL豫尽,可以來教一下我篙梢。