小白用宝塔面板绑定SSL证书使网站支持https

  之前用一加7T时用自带浏览器访问自己的站点以及等等http协议的网站,总是会跳出风险提示。现在手上的iPhoneXR倒是没出现这样的情况,不过可能是缘于我的强迫症?就想着要解决这个问题,那能怎么办呢,只有把网址的开头变成https才行。

1.宝塔面板

在安装网站程序时,我就选择了适合新手的宝塔面板。当然你也可以选择其他的方式,但是绑定SSL证书的方式肯定会有些差别,这里就不再赘述,毕竟大佬不会来看我的文章。
宝塔面板的安装也是傻瓜式操作的,具体可以通过宝塔官网按教程操作。

2.域名准备

我这次操作成功的是本站域名,在腾讯云注册的,不过阿里云的应该也可以,大同小异。如果是只需要单域名申请SSL证书,一般情况下在服务商处都可以一键申请

3.单域名SSL证书申请

以腾讯云为例,直接在腾讯云网页控制台或者微信小程序就可以一键申请,我是通过微信小程序申请的。
免费申请入口
通用名称就是填你要申请SSL证书的域名。需要要注意的是,因为这个申请的是单域名证书,所以绑定后就只有这一个域名可以使用。只有一个例外,那就是使用www.为前缀的域名申请,会同时包含不带任何前缀的顶级域名。
如果只是需要给单个域名绑定SSL证书那到这就申请完成了。
申请页面
之后等收到申请成功的短信或者邮件提醒,就可以到腾讯云网页控制台下载SSL证书了。

4.通配符域名SSL证书申请

通配符包含顶级域名及其泛域名即*.xxx.xxx
包含了这一层级域名及其所有子域名,二级三级同理通用。

Let's Encrypt: https://letsencrypt.org , 是一个免费的、自动化的、开放的证书颁发机构。截至2018年9月,它的全球SSL证书市场份额已超过50%,得到主流浏览器和厂商的认可与支持。

Let's Encrypt证书提供免费的申请,但没有高额的安全保险,不具备点对点的技术支持,而且申请过程比较复杂,适合具有一定的专业知识的个人站长申请。并且每次申请到的SSL证书有效期只有90天,但是可以通过脚本实现提前自动续约达到自动化永久免费使用的目的。

在2018年5月,Let's Encrypt发布了免费泛域名通配符SSL证书:https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579 ,在HTTPS全面普及的当下,越来越多的开发者选择了Let's Encrypt证书。

想要实现免费泛域名SSL证书申请及其自动续签,需要以下材料:

  • 一枚域名(解析到操作的服务器上)
  • 一台服务器(用以执行申请与自动续签脚本,且Web服务运行在此服务器上)

本文将以*.qq.com 为例进行泛域名证书申请演示

Let's Encrypt官方提供了一系列的申请方法文档,但流程比较复杂,为了简化申请流程,我们可以在Github上找到这个仓库:https://github.com/Neilpang/acme.sh

acme.sh 的具体使用说明见:https://github.com/Neilpang/acme.sh/wiki/说明
接下来,我们就利用 acme.sh 对证书进行申请。

(1)安装 acme.sh

进入服务器,执行命令:

curl https://get.acme.sh | sh

普通用户和root用户都可以安装使用,安装脚本其实是进行了如下操作:1)会把 acme.sh 安装到你所执行命令用户的用户目录下: ~/.acme.sh/ 2)会创建 bashalias,方便你的使用:alias > acme.sh=~/.acme.sh/acme.sh 3)会自动为你创建 cronjob 脚本,每天零点自动检测所有的证书,如果某证书快过期需要更新,则会自动更新该证书。
安装过程不会污染已有的系统任何功能和文件,所有后续的修改都将限制在安装目录中:~/.acme.sh/

(2)验证域名并生成证书

DNS-API验证:‌
‌通过DNS服务器提供 key 与 secret 实现自动验证,详情‌
https://github.com/Neilpang/acme.sh/tree/master/dnsapi
‌例如,在腾讯云解析的域名,请前往 https://www.dnspod.cn/console/user/security 控制台中申请子账号 API Token 并执行命令:

export DP_Id="6*ID*0"
export DP_Key="aa445e***TOKEN***5fe26e"
acme.sh --issue -d qq.com -d *.qq.com --dns dns_dp

注意:对于通配符证书需要加 -d 域名 -d *.域名 两个参数DP_Id DP_Key 将会保存在 ~/.acme.sh/account.conf
执行上述命令后,证书文件将会自动申请被存放在 ~/.acme.sh/ 对应的域名文件夹中,如:~/.acme.sh/qq.com 。后续 acme.sh 将会自动更新该文件夹内的证书。

至此证书的申请就已经完成。不知缘何,我用阿里云青岛vps就没法申请一直超时,后来更换为vultr东京就没出任何问题。但是站点在青岛上所以我又解析回去,三个月后只能手动续签不过也没事,
具体还是自测。
下载证书我用的是Xftp,连接后在root目录是找不到 /.acme.sh 目录的,需要手动在顶部地址栏输入 /root /.acme.sh 访问后下载证书。

5.SSL证书安装

登陆宝塔面板
在左侧菜单栏找到网站,点击要配置的站点
1

找到SSL功能
2

如果是在服务商处一键申请的单域名SSL证书,请参考宝塔官网教程

若是和我一样申请了通配符SSL证书,那么请打开从服务器下载下来的证书文件
3
4

用记事本打开箭头所指的这两个文件,当然.key结尾的这个是你自己申请证书的域名。
域名.key这个复制到对应的左边的密钥栏,fullchain.cer复制到右边的证书栏。
再点击保存,打开右上角的强制HTTPS。
至此大功告成,我也还没用到过期,到时候应该按上述教程重来一次就OK了。

Last modification:September 28, 2020
如果愿意支持我,请随意赞赏