日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

教你把HTTP網(wǎng)站免費(fèi)轉(zhuǎn)成HTTPS網(wǎng)站

 三郞 2019-05-11

關(guān)于HTTPS和HTTP的區(qū)別,以及HTTPS的優(yōu)勢(shì)、HTTPS和SSL之間的關(guān)系等,本文不做任何討論,感興趣的可以自行百度。本文只用來(lái)記錄作為一個(gè)“外行人”,如何一步步構(gòu)建自己的HTTPS服務(wù)器的過(guò)程。

1、申請(qǐng)SSL證書

SSL證書是一種加密協(xié)議。大部分企業(yè)級(jí)的SSL證書都是需要收費(fèi)的,而且對(duì)于個(gè)人開發(fā)者來(lái)說(shuō)都不便宜(土豪隨意)。個(gè)人使用的SSL證書,有一些是免費(fèi)的,比如Let's Encrypt、阿里云、騰訊云、又拍云等,都有提供免費(fèi)證書的申請(qǐng)接口。

這里以阿里云為例,其免費(fèi)申請(qǐng)流程為:

(1)注冊(cè)阿里云賬號(hào)

(2)打開“管理控制臺(tái)” -- “安全(云盾)” -- “CA證書服務(wù)”

(3)打開右上角“購(gòu)買證書”:

(4)選擇“免費(fèi)型DV SSL”,并點(diǎn)擊立即購(gòu)買。購(gòu)買成功后跳轉(zhuǎn)到“我的證書”頁(yè)面:

(5)此時(shí)的狀態(tài)處于“待完成”,點(diǎn)擊右側(cè)“補(bǔ)全”按鈕,補(bǔ)全域名信息:

(6)按照流程單擊“下一步”,填寫個(gè)人信息,上傳相關(guān)信息等。最后跳回“我的證書”頁(yè)面:

(7)此時(shí)的狀態(tài)變成了“待審核”。點(diǎn)擊右側(cè)“進(jìn)度”按鈕,進(jìn)入詳情頁(yè):

(8)這里需要配置域名授權(quán)驗(yàn)證。具體步驟可參考:如何配置域名授權(quán)驗(yàn)證? 配置完成后點(diǎn)擊“配置檢查”,如果配置成功,則:

此時(shí)耐心等待審核結(jié)果即可。一般需要3到5個(gè)工作日。

2、配置基本的Nginx服務(wù)器

這里我們使用Python的Flask框架,構(gòu)建一個(gè)最簡(jiǎn)單的網(wǎng)站,頁(yè)面直接返回Hello World。

這里建議大家使用docker進(jìn)行網(wǎng)站部署。推薦一個(gè)自己的Docker鏡像,鏡像中集成了Python網(wǎng)站開發(fā)、爬蟲等所需要的各種庫(kù),以及安裝有uWSGI和Nginx等相關(guān)服務(wù)。地址如下:https://hub./r/xianhu/centos/

下載鏡像后直接新建容器,并開放80端口和443端口即可:

PS:這里開放80是為了測(cè)試HTTP,開放443是為了測(cè)試HTTPS。

  1. docker run -it --name test -p 80:80 -p 443:443 xxx/image:v10 

進(jìn)入鏡像后,新建FlaskDemo目錄,并新建FlaskDemo.py文件。文件代碼如下:

  1. from flask import Flask 

  2. app = Flask(__name__) 

  3. @app.route('/') 

  4. def hello_world(): 

  5.     return 'Hello World!' 

  6. if __name__ == '__main__': 

  7.     app.run() 

然后利用uWSGI啟動(dòng)Flask程序,關(guān)于uWSGI的知識(shí)相信做過(guò)Flask的程序員應(yīng)該都了解。

  1. uwsgi -s /tmp/uwsgi.sock -w FlaskDemo:app --chdir /root/FlaskDemo/ --chmod-socket=666 

修改Nginx配置文件,配置文件地址:/etc/nginx/conf.d/default.conf:

  1. server { 

  2.     listen       80; 

  3.     server_name  xxx.com; 

  4.     charset utf-8; 

  5.     location / { 

  6.         include uwsgi_params; 

  7.         uwsgi_pass unix:/tmp/uwsgi.sock; 

  8. server { 

  9.     listen       80 default; 

  10.     server_name  ""; 

  11.     return       500; 

  12. server { 

  13.     listen       80 default; 

  14.     server_name  ""; 

  15.     return       500; 

配置很簡(jiǎn)單。修改之后重啟nginx -s reload即可使配置文件生效。此時(shí)訪問(wèn)域名地址,即可看到如下效果,HTTP網(wǎng)站配置完成。注意:域名需要備案,否則國(guó)內(nèi)不允許上線。

此時(shí)是通過(guò)HTTP進(jìn)行訪問(wèn)的。下一步我們就需要改為HTTPS訪問(wèn)。

3、在Nginx中配置SSL證書

經(jīng)過(guò)兩三天的等待,SSL證書終于申請(qǐng)成功了,即在阿里云的“安全(云盾)”產(chǎn)品中的“CA證書服務(wù)”中,“證書狀態(tài)”變成了“已簽發(fā)”:

下載證書到服務(wù)器,下載后可以得到兩個(gè)文件:xxxx.pem 和 xxxx.key

在Nginx的安裝目錄下,新建文件夾cert,并將上述兩個(gè)文件復(fù)制到該文件夾下:

此時(shí)修改Nginx配置文件/etc/nginx/conf.d/default.conf:

  1. server { 

  2.     listen       443; 

  3.     server_name  xxx.com; 

  4.     charset utf-8; 

  5.     #access_log  /var/log/nginx/host.access.log  main; 

  6.     ssl on; 

  7.     ssl_certificate   cert/xxxx.pem; 

  8.     ssl_certificate_key  cert/xxxx.key; 

  9.     ssl_session_timeout 5m; 

  10.     ssl_ciphers .... 

  11.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 

  12.     ssl_prefer_server_ciphers on; 

  13.     location / { 

  14.         include uwsgi_params; 

  15.         uwsgi_pass unix:/tmp/uwsgi.sock; 

  16.     } 

保存配置文件后,重啟Nginx:nginx -s reload。

此時(shí)再去訪問(wèn)網(wǎng)址,即可得到:

即HTTPS配置成功!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多