简单几步让你的网站支持 HTTPS

最近在玩小程序,调用自己的 API 的时候需要支持 HTTPS。在网上试了一些方法,这里分享一个简单实用的供大家使用。

证书提供商有很多,这里我使用的是 Let’s Encrypt 家的免费 SSL 证书。官方推荐使用 Certbot 工具生成,本文教程也基于此。

1 Nginx 安装与配置

为了能描述的更清楚一些,教程从 Nginx 的使用开始。

注意:当前系统为 Ubuntu 16.04

安装 Nginx

备份配置文件

编辑配置文件 内容为

保存后启动 Nginx

浏览器访问 ,看到如下内容

Nginx 配置成功。

注意:Nginx 中的域名配置前记得去域名服务商添加一条 A 记录,将域名解析到目标 IP

2 证书生成与配置

更新源后安装 ,这个主要是提供一些便携工具,比如添加软件源工具,一行命令就能添加源,不用自己手动去编辑相应的配置文件。

添加 Certbot 的源并安装

生成证书

将上面的 换成你的域名即可。

生成过程中会让你填写必要的信息,输入你的邮箱

同意协议

是否愿意 Let's Encrypt 给你的邮箱推送一些消息,这个你自己随意选择

选择是否自动修改 Nginx 的一些配置,以支持 HTTPS,1 为否,2 为是。不熟悉相关配置的可以选择 2

最后如果看到类似下面的输出,则说明证书已经生成并配置成功

此时,Nginx 的配置文件内容已经被修改成这样了

我们访问 ,会发现域名被重定向到了 HTTPS,并且能看到如下内容

说明网站已经成功支持 HTTPS。如果未生效,试着重启一下 Nginx,若还是不行,参考第 3 节的内容。

如果你不想 Certbot 自动给你配置,你可以使用 certonly 选项,类似这样

3 可能会碰到的问题

3.1 Nginx 安装并配置后无法访问

重启一下 Nginx

如果还不行,可能是 80 端口未开放,打开就好。

3.2 Another instance of Certbot is already running

安装过程中,不小心中断,再次执行下面的命令

可能会出现这样的问题

执行如下命令找到 文件

将其删除

然后重试即可。

3.3 证书生成并且配置成功,访问域名超时

这个可能是 HTTPS 的 443 端口被禁引起的,打开就可以了。

4 自动延长免费期限

Let's Encrypt 的证书有效期只有 90 天,到期后我们需要重新生成。

不过我们不需要手动去生成,上面的生成命令在生成证书后,已经为我们配置了定时任务。查看 ,主要内容如下

表面上每隔 12 个小时会重建一次证书,事实上只有当证书的有效期只有 30 天的时候,重建才真正生效。

这里我们只要确认下重建命令没有问题就可以了,执行一下命令

如果执行过程中没有报错的话,也就没有什么问题了。

5 SSL 状态检测

我们可以使用 MySSL 检测证书详细信息、证书链详细信息、当前支持协议、加密套件详细信息等,地址如下

访问后,输入你的域名即可测试。

这里我们可以看到支持的 SSL 版本,类似这样

有些应用场景下对 SSL 版本有要求,比如小程序的 API 等,我们就可以从这确定我们的 HTTPS 是否满足需求。当然,还有其它的一些信息,有需要的时候查看就好。

除了 MySSL 外,下面的两个在线工具也比较常用

6 参考

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101G09J7B00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励