欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  把HTTP网站免费转成HTTPS网站(阿里云)

其他 网络 1959 0评论

HTTPS和HTTP的区别


超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

 

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。


如何一步步构建自己的HTTPS服务器


1、申请SSL证书


SSL证书是一种加密协议。大部分企业级的SSL证书都是需要收费的,而且对于个人开发者来说都不便宜(土豪随意)。个人使用的SSL证书,有一些是免费的,比如Let's Encrypt、阿里云、腾讯云、又拍云等,都有提供免费证书的申请接口。


这里以阿里云为例,其免费申请流程为:


(1)注册阿里云账号


(2)打开“管理控制台” -- “安全(云盾)” -- “CA证书服务”


(3)打开右上角“购买证书”:

111.jpg


(4)选择“免费型DV SSL”,并点击立即购买。购买成功后跳转到“我的证书”页面:

222.jpg


(5)此时的状态处于“待完成”,点击右侧“补全”按钮,补全域名信息:

333.jpg


(6)按照流程单击“下一步”,填写个人信息,上传相关信息等。最后跳回“我的证书”页面:

444.jpg


(7)此时的状态变成了“待审核”。点击右侧“进度”按钮,进入详情页:

555.jpg


(8)这里需要配置域名授权验证。具体步骤可参考:如何配置域名授权验证? 配置完成后点击“配置检查”,如果配置成功,则:

666.jpg


此时耐心等待审核结果即可。一般需要3到5个工作日。


2、配置基本的Nginx服务器


这里我们使用Python的Flask框架,构建一个最简单的网站,页面直接返回Hello World。


这里建议大家使用docker进行网站部署。推荐一个自己的Docker镜像,镜像中集成了Python网站开发、爬虫等所需要的各种库,以及安装有uWSGI和Nginx等相关服务。地址如下:https://hub.docker.com/r/xianhu/centos/ 


下载镜像后直接新建容器,并开放80端口和443端口即可:


PS:这里开放80是为了测试HTTP,开放443是为了测试HTTPS。

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


进入镜像后,新建FlaskDemo目录,并新建FlaskDemo.py文件。文件代码如下:

from flask import Flask 

 

app = Flask(__name__) 

 

@app.route('/') 

def hello_world(): 

    return 'Hello World!' 

 

if __name__ == '__main__': 

    app.run() 


然后利用uWSGI启动Flask程序,关于uWSGI的知识相信做过Flask的程序员应该都了解。

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


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

server { 
    listen       80; 
    server_name  xxx.com; 
    charset utf-8; 
 
    location / { 
        include uwsgi_params; 
        uwsgi_pass unix:/tmp/uwsgi.sock; 
} 
server { 
    listen       80 default; 
    server_name  ""; 
    return       500; 
} 
server { 
    listen       80 default; 
    server_name  ""; 
    return       500; 
}


配置很简单。修改之后重启nginx -s reload即可使配置文件生效。此时访问域名地址,即可看到如下效果,HTTP网站配置完成。注意:域名需要备案,否则国内不允许上线。

777.jpg


此时是通过HTTP进行访问的。下一步我们就需要改为HTTPS访问。


3、在Nginx中配置SSL证书


经过两三天的等待,SSL证书终于申请成功了,即在阿里云的“安全(云盾)”产品中的“CA证书服务”中,“证书状态”变成了“已签发”:

888.jpg


下载证书到服务器,下载后可以得到两个文件:xxxx.pem 和 xxxx.key

999.jpg


在Nginx的安装目录下,新建文件夹cert,并将上述两个文件复制到该文件夹下:

1000.jpg


此时修改Nginx配置文件/etc/nginx/conf.d/default.conf:

server { 
    listen       443; 
    server_name  xxx.com; 
 
    charset utf-8; 
    #access_log  /var/log/nginx/host.access.log  main; 
     
    ssl on; 
    ssl_certificate   cert/xxxx.pem; 
    ssl_certificate_key  cert/xxxx.key; 
    ssl_session_timeout 5m; 
    ssl_ciphers .... 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
 
    location / { 
        include uwsgi_params; 
        uwsgi_pass unix:/tmp/uwsgi.sock; 
    } 
}


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


此时再去访问网址,即可得到:

1001.jpg


即HTTPS配置成功!


参考网址:

https://www.cnblogs.com/redfire/p/7702173.html

https://blog.csdn.net/qq_42462027/article/details/81213999 

https://blog.csdn.net/peng_wei_kang/article/details/80602899

https://blog.csdn.net/qq_42462027/article/details/81213999


原文地址:http://server.51cto.com/sOS-556189.htm

转载请注明: ITTXX.CN--分享互联网 » 把HTTP网站免费转成HTTPS网站(阿里云)

最后更新:2019-02-13 18:28:33

赞 (1) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽