loading

运维

使用Go和Lets Encrypt证书系统自动化部署HTTPS加密连接

宝塔服务器面板¥3188大礼包,请点击领取!

HTTPS 连接主要可以帮助我们加密浏览器与服务器之间的流量来确保用户的私密信息不会遭到第三方的窃取。尤其是在国内各个地区基本都存在运营商劫持用户的访问, 并在服务器返回的流量里插入第三方的广告内容。因此对于网站来说保持安全良好的用户体验及时部署HTTPS是必须的, 如果你还未部署那么来看本文教程吧。

使用Go和Lets Encrypt证书系统自动化部署HTTPS加密连接

使用第三方提供的HTTPS加密服务:

诸如CloudFlare等加速与防护服务会为用户提供HTTPS加密,这些服务使用通配符证书确保可被浏览器信任。如果想要使用 CloudFlare 提供的CDN和HTTPS服务那么需要切换DNS服务器, 下面介绍的是简要操作流程。

1、前往CloudFlare注册账号然后添加你的域名信息, 添加之后会返回DNS服务器信息需要你切换DNS服务。

2、前往你的域名注册商那里找到对应域名的解析管理, 请务必先将当前存在的所有解析记录导出或者保存。

3、返回CloudFlare核对自动检测的记录值是否与当前解析一致,如果不一致请务必先在CloudFlare上修改。

4、保存所有的解析记录后请点击域名的DNS服务器管理,然后删除原有的DNS服务器换上CloudFlare DNS。

5、修改DNS服务器后返回CloudFlare等待DNS服务器生效,此时你可以检查CloudFlare自动检测的记录值。

6、在DNS服务器生效后请在 HTTPS 加密设置选项里将SSL设置为Full,设置之后即可开启HTTPS加密连接;

7、在Web管理界面还需要向CloudFlare提供你的服务器IP地址,设置完成后等待片刻后CDN就会开始生效;

8、作为安全建议你应该在HTTPS选项里设置总是使用HTTPS选项,设置后所有HTTP连接将重定向至HTTPS在该解决方案中 CloudFlare 负责提供SSL证书并与浏览器进行会话,同时通过代理向网站的服务器进行通信。由于额外的通信量可能会降低用户打开网站时的加载速度, 也可能由于CloudFlare服务器比你的服务器更快。诸如亚马逊的AWS以及谷歌的GCP平台也同样会提供此类HTTPS服务,不过有的可能会向你收取额外的费用。注意:因网络问题国内网站使用CloudFlare可能会降低加载速度,同时使用CloudFlare必须切换DNS服务器。

直接支持HTTPS加密连接:

在很久之前如果你想要获得SSL证书那么必须每年为证书进行付费, 然而现在 Lets Encrypt 项目改变了这点。Lets Encrypt是 Mozilla 发起的免费的非盈利组织,该项目可为全球所有用户提供免费的SSL证书提高安全性。在LetsEncrypt出现之前你可能需要购买证书,然后将证书存放在某处并配置你的网络服务器来启用这个证书。有了Lets Encrypt之后你就可以直接用该项目的API获得证书,而这个过程是在你的服务器启动后自动完成的。值得庆幸的是现在所有与 API 进行对话的艰苦工作都由其他人完成了,我们只需安装插件通过插件部署即可。

使用Go库获取Lets Encrypt的支持:

在此推荐由Go核心开发人员开发的 AutoCert 插件,笔者已经使用该插件几个月所有运行都没有出现过问题。举例请访问GitHub:https://github.com/kjk/go-cookbook/blob/master/free-ssl-certificates/main.go需要注意的是HTTPS的标准端口为 443,你也可以选择只运行 HTTP、只运行HTTPS或者二者均可自由访问。如果服务器没有证书的话那么它将会使用HTTP API 向 Lets Encrypt 的服务器自动请求证书供你的域名使用。请注意使用HTTP API向服务器请求证书每周上限为20个, 避免较高的请求量导致 Lets Encrypt 服务器过载。因此在某些地方缓存证书是重要的,在我们的例子中将证书缓存到磁盘上,使用的autocert.DireCache命令。为了核实你确实你所申请证书的域名的所有者,Lets Encrypt 服务器会对你的服务器地址进行验证防止假冒。

从HTTP重定向到HTTPS:

如果你已经能够HTTPS加密访问那么也没有必要再提供HTTP访问,因此需要将 HTTP 请求重定向至HTTPS。具体HTTP重定向到HTTPS各个环境操作方法不同,可参考Nginx如何将HTTP通过301重定向跳转到HTTPS。诸如Apache以及IIS等组件请自行查询如何将HTTP重定向至HTTPS,这部分网上已经存在非常详细的教程了。注意:如果你使用 CloudFlare 等 CDN 加速服务进行重定向的,那么将不支持百度搜索的 HTTPS 网站认证。如果你希望能够百度HTTPS 认证提高 SEO 请参考:利用智能DNS解决百度HTTPS认证不支持CDN加速域名免费证书从何而来:有意见认为由于某个设计错误 SSL 协议不仅可进行加密,还会向浏览器证明网站所有者的真实身份认证信息。它担负这责任使得我们可以追踪Google网站的所有者,并可以看到这确实是属于谷歌公司而不是黑客伊万的。我们通常只会信任极少数的公司(CA,即证书颁发机构)会颁发能够证明网站真实的所有者身份的数字证书。当你申请证书时证书颁发机构会核实你的身份信息, 他们通过查看你的身份证明文件确保你的信息真实有效。核实这些文件以及保证证书安全都需要耗费人力与物力, 因此证书颁发机构为你签发证书而收费也是合理的。但是信任并不是成比例的,浏览器和操作系统可信任十家公司不会颁发假证书,但不能信任1000家也是这样。我们不想让随便一家公司变成骗子证书颁发机构, 然后向莫斯科的黑客伊万颁发隶属于谷歌公司域名的证书。为了得到仅有的几个理想的结果而连续审核数千家证书颁发机构, 这样会消耗掉大量的时间和人力物力等等。这正是 SSL 证书市场当前的行情,你每年只需花 60 美元就可以拥有一台低端服务器, 但一个证书却贵的多。这个问题本质上是 SSL 证书本身具有的成本问题, 而这个问题也是所有网站采用加密技术的明显障碍之一。于是少数几家公司决定共享资源来解决这个问题从而更加有利于互联网的发展,最终 Lets Encrypt 应用而生。最后编制一些必要的应用程序并运营着 Lets Encrypt 颁发证书的服务器,这,也就是免费 SSL 证书的由来。

(0)

本文由 podipod软库网 作者:Anonymous 发表,转载请注明来源!

全国计算机等级考试题库

热评文章

发表评论