简单几步生成免费SSL证书(https证书)

简单几步生成免费SSL证书(https证书)

https越来越普及,有些场景比如微信回调地址还强制要求必须使用https协议。但一年上千块钱的商业ssl证书, 对于个人和初创企业来说,成本有点高。这时我们可以考虑选择免费的SSL证书,Let's Encrypt是国外的一个免费SSL证书项目,使用过后觉得非常靠谱,配置也很简单方便。

下面就如何为你的网站添加https支持进行讲解,这里假设你已经有了基础配置,比如http访问已经是正常的,所以关于如何配置web服务器不会做过多的介绍。

安装certbot

访问网站https://certbot.eff.org/,选择你使用的web服务软件(nginx?Apache?)和操作系统版本,页面会自动为你生成安装certbot的命令。

nginxubuntu16.04为例,生成的安装脚本为:

生成证书

安装好cerbot后,就可以使用如下命令生成证书了,以nginx为例:

  1. 选择要为哪个域名生成ssl证书

    image-20190108163907925

  1. 选择以何种方式生成配置

    这里我们选择1:No redirect

    image-20190108164341383

  1. 证书和配置自动生成成功

    不出意外的话会得到下面的成功提示。

    image-20190108164547976

    同时你也会发现,certbot自动帮你的nginx配置文件,添加了两行证书文件所在路径的配置。

    image-20190108164811705

 

完善nginx配置

至此,就已经完成了所有配置。正常的话你的网站就可以用https访问了,本博域名https://www.xluke.info就是采用此种方式生成的ssl证书。

还有个地方要注意的是,因为我的nginx配置文件事先已经有如下红框的配置,所以证书文件一旦生成之后,就可以访问成功了。但如果你没有这些配置,那你得先手动添加下,然后重启nginx。

image-20190108165724328

为方便复制粘贴,下面贴出文本代码:

证书更新

生成的证书默认只有90天的有效期,可以使用下面这个命令,刷新证书的有效期

建议用定时任务,比如crontab的方式,每隔一段时间(每天或者每周都可以)执行一遍此命令,以保证证书不会过期。