30分钟让网站支持HTTPS

[复制链接]

升级   1.28%

发表于 2016-8-15 14:02:23 | 显示全部楼层 |阅读模式
我不是安全专家也不是搞服务器的,所以这对我而言也是一种有趣的经历,而记录这个过程可以让其他任何人也能很快地做到这些。包括一些暂时的停顿时间,我总共只花了20-30分钟。
获得证书
有一些官方出售的证书,但从我的经验来看,最容易上手是Let’s Encrypt。它也是免费的,而且背后有一些主要的赞助商,例如Mozilla,Chrome,Akamai和Cisco。
通过Let’s Encrypt为你的网站生成证书的最快方法是使用SSL For Free。然后,你便可以选择Automatic FTP Verification或者Manual Verification。

选择好了之后,你就可以得到:
针对网站的SSL证书 证书私钥 CA /链证书
安装证书
下面,针对你的托管服务提供商以及你的服务器类型,或者如果你是自己托管的话,有不同的方法。就我而言,我对这个网站使用Media Temple,并且它们在Twitter上非常有用,而且它们的在线支持聊天会指点我正确的方向。
所有我需要做的是:
进入帐户中心。正如Media Temple有一个,我敢肯定它适用于大部分的托管选项。 选择导入SSL证书,添加我之前得到的SSL证书,私钥,CA /链证书之前。 成功!
好了吗,没有。第3步是骗人的。当我在第2步中进入我的密钥时,我会得到一个错误说我的私钥是无效的。我慌了一下,然后开始去找问题出在什么地方。Media Temple支持指引我到Let’s Encrypt论坛上的“Error adding cert, Invalid private key”讨论中。
原来需要转换私钥到RSA格式,使用下面的代码行就可以在终端中快速转换:
sudo openssl rsa -inform pem -in /etc/letsencrypt/live/www.example.com/privkey.pem -outform pem | less
当然要相应地改变上面的域和路径。然后复制输出和提交/另存为私钥。
更多高级设置
如果你正在某个地方运行你自己的服务器或虚拟机,或者恰好没有针对主机的简单帐户中心选择,那么我推荐你阅读下面这些文章考虑手动安装:
Tim Kadlec的《Taking Let’s Encrypt for a Spin》 Jeremy Keith的《Switching to https》
验证证书安装
安装好了之后,验证证书的一个简单方法是使用SSL Checker以发现任何潜在的问题。然后,当你使用https://访问你的网站的时候,所有一切都应该显示良好和安全。然而在现实生活中很少是这样的情况。要小心混合的内容,即部分内容通过https://提供服务,而一些内容使用的则是http://。使用http://的内容将不显示。
注意:不要使用相对路径/协议相关的URL,即/css/style.css。它会对可能的端点攻击开放,而且,从http://你可以随时请求https://资源,反之则不能。
一旦确保安全之后,你应该可以在所有的web浏览器中看到挂锁图标,在地址栏的URL旁边。如果没有显示,那么可以使用伟大的服务Why No Padlock? 来找出可能的问题。我敢打赌,你的1%的时间用来改变内部引用到https://,然后剩下99%的时间用来搞清楚有关第三方的内容,以及如何安全地包含这些内容。
强制SSL / HTTPS用于所有请求
一旦网站安全并在可以平稳运行HTTPS之后,没有理由不确保所有请求都通过SSL。
正如使用.htaccess和mod_rewrite的Force SSL/https中概述的那样,下面有一个代码片段可以用来添加.htaccess 文件以确保:
RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
一起试试添加HTTPS到你的网站吧!你值得拥有。
请勿回复毫无意义的内容(包括纯字母、纯数字、乱打文字)违者将会被禁止发言!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

申请友链|Archiver|手机版|小黑屋|VIP分享网论坛

GMT+8, 2024-5-14 03:27 , Processed in 0.058197 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.