专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
芋道源码  ·  记一次使用规则引擎改造任务系统的经验 ·  3 天前  
芋道源码  ·  分享15条高频SQL优化技巧 ·  5 天前  
芋道源码  ·  如何设计一个全局唯一的订单号? ·  6 天前  
51好读  ›  专栏  ›  java一日一条

30分钟让网站支持HTTPS

java一日一条  · 公众号  · Java  · 2017-01-11 07:30

正文

转载自码农网

这里我会指导大家如何轻松搞定在你的网站上使用HTTPS。

我不是安全专家也不是搞服务器的,所以这对我而言也是一种有趣的经历,而记录这个过程可以让其他任何人也能很快地做到这些。包括一些暂时的停顿时间,我总共只花了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上非常有用,而且它们的在线支持聊天会指点我正确的方向。

所有我需要做的是:

  1. 进入帐户中心。正如Media Temple有一个,我敢肯定它适用于大部分的托管选项。

  2. 选择导入SSL证书,添加我之前得到的SSL证书,私钥,CA /链证书之前。

  3. 成功!

好了吗,没有。第3步是骗人的。当我在第2步中进入我的密钥时,我会得到一个错误说我的私钥是无效的。我慌了一下,然后开始去找问题出在什么地方。Media Temple支持指引我到Let’s Encrypt论坛上的“Error adding cert, Invalid private key”讨论中。

原来需要转换私钥到RSA格式,使用下面的代码行就可以在终端中快速转换:


当然要相应地改变上面的域和路径。然后复制输出和提交/另存为私钥。

更多高级设置

如果你正在某个地方运行你自己的服务器或虚拟机,或者恰好没有针对主机的简单帐户中心选择,那么我推荐你阅读下面这些文章考虑手动安装:

验证证书安装

安装好了之后,验证证书的一个简单方法是使用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 文件以确保:


一起试试添加HTTPS到你的网站吧!你值得拥有。