当前位置: 首页 > 科技观察

教你免费把HTTP网站转成HTTPS网站

时间:2023-03-21 15:35:31 科技观察

关于HTTPS和HTTP的区别,以及HTTPS的优点,HTTPS和SSL的关系等等,本文不做任何讨论,有兴趣的可以百度一下。本文只是用来记录一个“外行”,如何一步步搭建自己的HTTPS服务器。1、申请SSL证书SSL证书是一种加密协议。大多数企业级的SSL证书都是需要收费的,对于个人开发者来说也不便宜(土豪是免费的)。一些个人使用的SSL证书是免费的,比如Let'sEncrypt、阿里云、腾讯云、优拍云等,都提供免费的证书申请接口。以阿里云为例,免费申请流程如下:(1)注册一个阿里云账号(2)打开“管理控制台”——“安全(云盾)”——“CA证书服务”(3)打开右上角点击“购买证书”:(4)选择“免费DVSSL”,点击立即购买。购买成功后,跳转到“我的证书”页面:(5)此时状态为“待完成”,点击右侧“完成”按钮完成域名信息:(6)按照流程点击“下一步”,填写个人信息,上传相关信息等。***跳转至“我的证书”页面:(7)此时状态已变为“待审核”。点击右侧“进度”按钮,进入详情页面:(8)这里需要配置域名授权验证。具体步骤可参考:如何配置域名授权验证?配置完成后,点击“配置检查”。如果配置成功,则:耐心等待审核结果即可。一般需要3到5个工作日。2、配置基础的Nginx服务器这里我们使用PythonFlask框架搭建一个最简单的网站,页面直接返回HelloWorld。网站部署推荐使用docker。建议拥有自己的Docker镜像,集成了Python网站开发、爬虫等所需的各种库,并安装了uWSGI、Nginx等相关服务。地址如下:https://hub.docker.com/r/xianhu/centos/下载镜像后,直接新建容器,并开启80和443端口:PS:这里开启80测试HTTP,和打开443测试HTTPS测试。dockerrun-it--nametest-p80:80-p443:443xxx/image:v10进入镜像后,新建FlaskDemo目录,新建FlaskDemo.py文件。文件代码如下:fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'HelloWorld!'if__name__=='__main__':app.run()然后使用uWSGI启动Flask程序,关于uWSGI的知识相信做过Flask的程序员应该都懂。uwsgi-s/tmp/uwsgi.sock-wFlaskDemo:app--chdir/root/FlaskDemo/--chmod-socket=666修改Nginx配置文件,配置文件地址:/etc/nginx/conf.d/default.conf:配置非常简单。修改后重启nginx-sreload使配置文件生效。此时访问域名地址,可以看到如下效果,HTTP网站配置完成。注意:域名需要备案,否则在国内是不允许上网的。这时候是通过HTTP访问的。接下来我们需要更改为HTTPS访问。3.在Nginx中配置SSL证书经过两三天的等待,SSL证书申请终于成功了,即在阿里云“安全(云盾)”产品的“CA证书服务”中,“证书状态"变成"Issued":下载证书到服务器,下载后可以在Nginx安装目录下得到xxxx.pem和xxxx.key两个文件,新建文件夹cert,将以上两个文件复制到该文件夹??下:此时修改Nginx配置文件/etc/nginx/conf.d/default.conf:server{listen443;server_namexxx.com;charsetutf-8;#access_log/var/log/nginx/host.access.logmain;sslon;ssl_certificatecert/xxxx.pem;ssl_certificate_keycert/xxxx.key;ssl_session_timeout5m;ssl_ciphers....ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_prefer_server_cipherson;location/{includeuwsgi_params;uwsgi_passunix:/tmp/uwsgi.sock保存配置文件后;},重启Nginx,nginx-sreload。这时再去访问网站,可以得到:即HTTPS配置成功!