1.準(zhǔn)備工作
你需要有一臺(tái)云服務(wù)器和一個(gè)已經(jīng)申請(qǐng)的域名堤瘤,這里給大家阿里云服務(wù)器網(wǎng)址,里面都有詳細(xì)的購(gòu)買步驟浆熔,我們主要來說說證書的申請(qǐng)與認(rèn)證本辐。
1.為什么要申請(qǐng)證書?
- HTTP 協(xié)議(HyperText Transfer Protocol医增,超文本傳輸協(xié)議):是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議 慎皱。
- HTTPS 協(xié)議(HyperText Transfer Protocol over Secure Socket Layer):可以理解為HTTP+SSL/TLS, 即 HTTP 下加入 SSL 層叶骨,HTTPS 的安全基礎(chǔ)是 SSL宝冕,因此加密的詳細(xì)內(nèi)容就需要 SSL,用于安全的 HTTP 數(shù)據(jù)傳輸邓萨。
客戶端在接受到服務(wù)端發(fā)來的SSL證書時(shí)地梨,會(huì)對(duì)證書的真?zhèn)芜M(jìn)行校驗(yàn),以瀏覽器為例說明如下:
(1)首先瀏覽器讀取證書中的證書所有者缔恳、有效期等信息進(jìn)行一一校驗(yàn)
(2)瀏覽器開始查找操作系統(tǒng)中已內(nèi)置的受信任的證書發(fā)布機(jī)構(gòu)CA宝剖,與服務(wù)器發(fā)來的證書中的頒發(fā)者CA比對(duì),用于校驗(yàn)證書是否為合法機(jī)構(gòu)頒發(fā)
(3)如果找不到歉甚,瀏覽器就會(huì)報(bào)錯(cuò)万细,說明服務(wù)器發(fā)來的證書是不可信任的。
(4)如果找到,那么瀏覽器就會(huì)從操作系統(tǒng)中取出頒發(fā)者CA 的公鑰赖钞,然后對(duì)服務(wù)器發(fā)來的證書里面的簽名進(jìn)行解密
(5)瀏覽器使用相同的hash算法計(jì)算出服務(wù)器發(fā)來的證書的hash值腰素,將這個(gè)計(jì)算的hash值與證書中簽名做對(duì)比
(6)對(duì)比結(jié)果一致,則證明服務(wù)器發(fā)來的證書合法雪营,沒有被冒充
(7)此時(shí)瀏覽器就可以讀取證書中的公鑰弓千,用于后續(xù)加密了
(8)client與web協(xié)商對(duì)稱加密算法,client生成一個(gè)對(duì)稱加密密鑰并使用web公鑰加密献起,發(fā)送給web服務(wù)器洋访,web服務(wù)器使用web私鑰解密
(9)使用對(duì)稱加密密鑰傳輸數(shù)據(jù),并校驗(yàn)數(shù)據(jù)的完整性
2.證書申請(qǐng)
阿里云提供免費(fèi)的證書谴餐,不需要人工審核姻政,用來做測(cè)試是非常不錯(cuò)的選擇,申請(qǐng)地址證書購(gòu)買
證書控制臺(tái)
,然后證書申請(qǐng)并填入相關(guān)信息岂嗓。下一步汁展,等待審核,快的5分鐘就會(huì)審核通過厌殉。然后點(diǎn)擊下載食绿,把證書下到電腦上。
2.證書下載
下載配置文件之后年枕,需要將其解壓炫欺,解壓之后可以看見里面包含了兩個(gè)證書文件
xxx.key
xxx.pem
在下載驗(yàn)證文件完成之后乎完,筆者需要把文件放到服務(wù)器中去熏兄,這里提供一條復(fù)制命令
[root@aliyun ~]#scp ~/Downloads/fileauth.txt root@X.X.X.X:~/
或者你也可以打開云服務(wù)器自己上傳,傳到哪個(gè)目錄下都行树姨,但是目錄你需要記清楚摩桶,下面還要用到。
[root@aliyun ~]# unzip xx.xx.xx.zip #解壓
[root@aliyun ~]# ls #你會(huì)發(fā)現(xiàn)有兩個(gè)文件帽揪。一個(gè)以key結(jié)尾一個(gè)以pem
[root@xiaoxuan ~]# mkdir -p /etc/nginx/cert
[root@aliyun ~]# cp 2447549_www.testpm.top* /etc/nginx/cert/
[root@aliyun ~]# cd /etc/nginx/cert/
[root@aliyun cert]# mv 2447549_www.testpm.top.key www.testpm.top.key
[root@aliyun cert]# mv 2447549_www.testpm.top.pem www.testpm.top.pem
# 上面的步驟是將這兩文件改名并移動(dòng)到/etc/nginx/cert/目錄下
3.證書配置
[root@aliyun ~]# vim /etc/nginx/conf.d/default.conf #進(jìn)入配置文件(可能你跟我的不一樣不要直接復(fù)制)
我們需要添加的內(nèi)容在下載證書那里
# 以下屬性中以ssl開頭的屬性代表與證書配置有關(guān)硝清,其他屬性請(qǐng)根據(jù)自己的需要進(jìn)行配置。
server {
listen 443 ssl; #SSL協(xié)議訪問端口號(hào)為443转晰。此處如未添加ssl芦拿,可能會(huì)造成Nginx無法啟動(dòng)。
server_name www.testpm.top; #將localhost修改為您證書綁定的域名查邢,例如:www.example.com蔗崎。
root html;
index index.html index.htm;
ssl_certificate /etc/nginx/cert/2447549_www.testpm.top.pem; #將domain name.pem替換成您證書的文件名。
ssl_certificate_key /etc/nginx/cert/2447549_www.testpm.top.key; #將domain name.key替換成您證書的密鑰文件名扰藕。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件缓苛。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協(xié)議進(jìn)行配置。
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html; #站點(diǎn)目錄邓深。
index index.html index.htm;
}
}
4.測(cè)試
修改配置文件之后未桥,需要測(cè)試nginx配置文件是否正確
[root@aliyun ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@aliyun ~]# nginx -s reload
你自己的域名就配置完成了笔刹。
你們的評(píng)論和點(diǎn)贊是我寫文章的最大動(dòng)力,蟹蟹冬耿。