创作者:HelloGitHub-逐梦角色
HTTP 报文以明文方式传送,假如你的平台只适用 HTTP 协议书,那麼也有很有可能遭到到安全性进攻。你能应用 Google 打开浏览器一个 HTTP 协议书网址,会发觉 Chrome 在网站地址的左侧将这一网址标识为不安全。
HTTPS 为 HTTP 报文格式提供了一个数据加密的安全通道,那样网络攻击就没法监听或是伪造传送的具体内容。要开启 HTTPS,务必向一个可信任站点组织申请办理一个 HTTPS 证书。技术专业的证书申请必须收费标准,但是针对个人博客网站而言,有很多不要钱的证书申请组织。例如 Let’s Encrypt,它提供了不要钱的证书申请服务项目,申请办理全过程十分简易,只必须运行几个命令就可以,并且证书期满后适用全自动续签,可以说一劳永逸。下面大家便是用 Let’s Encrypt 提供的工具来申请办理完全免费的 HTTPS 证书。
最先组装 Let’s Encrypt 提供的证书申请工具。登陆 https://certbot.eff.org/ 挑选大家个人博客应用的服务器程序和电脑操作系统。实例教程中以 Nginx 和 CentOS 7 为例子:
最先组装必需工具:
$ sudo yum -y install yum-utils
$ sudo sudo yum install -y certbot python2-certbot-nginx
certbot python2-certbot-nginx 是 Let’s Encrypt 提供的 HTTPS 证书申请的工具,python2-certbot-nginx 是针对 Nginx 的软件,促使 Nginx 运行的服务项目申请办理证书更为简洁便捷。
随后运行证书申请命令:
$ sudo certbot --nginx
留意
经检测,运行以上命令后有可能报 ImportError: No module named ‘requests.packages.urllib3’ 的不正确,这也是因为 requests 和 urlib3 版本号过低而致(可以参照这一 issue[2] 的探讨),解决方案是重新安装他们,运行下边的命令:
$ pip uninstall requests
$ pip uninstall urllib3
$ yum remove python-urllib3
$ yum remove python-requests
随后重装 certbot,因为它依靠上边2个包,因此重新安装的时候会一并装上:
$ sudo yum install -y certbot python2-certbot-nginx
再次实行证书申请命令:sudo certbot –nginx
会出现一系列互动式的提醒,最先会使你键入电子邮箱,用以定阅。随后键入 a 允许她们的现行政策。
然后 certbot 会自行扫描仪出去网站域名,依据提醒键入想打开 HTTPS 的网站域名型号:
Which names would you like to activate HTTPS for
1: django-blog-tutorial-v2-demo.zmrenwu.com
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter ‘c’ to cancel): 1
随后 certbot 会做一个网站域名校检,证实你对这一网站域名有操纵管理权限。认证成功后,Let’s Encrypt 便会把证书授予让你。
最终会提醒你能否把 HTTP 跳转到 HTTPS,自然挑选是,那样 certbot 会自行帮大家改动 Nginx 的配备,将 HTTP 跳转到 HTTPS,假如客户应用 HTTP 协议书浏览咱们的个人博客,便会跳转到 HTTPS 协议书浏览,保证安全系数。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/django-blog-tutorial-v2.conf
certbot 申请办理的证书仅有 3 个月有效期限,但是没有关系,certbot 可以无尽续签,大家提升一条 crontab 计划任务用于实行 certbot 全自动续签每日任务,那样一次申请办理,终身应用。
开启 /etc/crontab,提升计划任务:
echo \"0 0,12 * * * root python -c \'import random; import time; time.sleep(random.random() * 3600)\' && certbot renew\" | sudo tee -a /etc/crontab > /dev/null
这儿配备每日 12 点实行全自动续签命令。
因为整站打开了 HTTPS,因而必须把网址中欧 HTTPS 的具体内容(例如根据 HTTP 协议书要求的外界网络资源)改成 HTTPS,大家的blog中现阶段有一处引进外界图标库的款式文档是以 HTTP 协议书引进的,必须改成 HTTPS:
base.html
<link rel=\"stylesheet\" href=\"https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css\">
以上,简易两步,就进入了整站 HTTPS。
参考文献
[1]HelloGitHub-Team 库房: https://github.com/HelloGitHub-Team/HelloDjango-blog-tutorial
[2]issue: https://github.com/certbot/certbot/issues/5104
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。