在 FreeSSL 上为你的域名申请免费 SSL 证书

一、SSL 证书是啥,有什么用

传统的 http 协议的数据是明文的,数据传输过程中,中间人可以获取用户和网站之间传输的数据内容,这就使得重要数据有泄露的危险,比如用户名密码、银行卡密码、交易密码等。SSL 证书可以为你的网站的数据传输增加加密保护,使得用户和网站之间传输的数据是经过加密的,中间人无法破解,保证了数据的隐蔽性。

当然 SSL 证书带来的好处不止这一点,这里就不一一说明了,直接进入正题。

二、申请方式以及区别

申请 SSL 证书的方式

SSL 证书可以花钱购买,也可以由一些可信任的 CA 机构免费给你颁发,甚至是自行签证,不管是收费还是免费或者是自行签证,所有的 SSL 证书的加密安全性没有区别,所以大可放心。

不同签证方式有什么区别

自签证书只有自己信任,其它人不会信任,所以在浏览器上访问的时候,浏览器会给个大大的警告说这个证书不可信任。所以不推荐自签证书,而且这种方式也不安全。

付费证书和免费证书的区别主要体现在服务上,比如付费证书的可以使用通配符,一个证书对应多个子域名,而免费证书常见情况下一个证书只对应一个子域名,若有多个子域名需要做网站,则需要为每一个子域名都申请一个证书,不过也有证书颁发机构可以颁发通配符域名的证书,具体看颁发机构。免费证书可能还有使用限制。

证书都有时间限制,付费证书一般时间比较长,可以用个两三年的,免费证书则比较短,长的有一年的,短的只有三个月等,具体看不同的颁发机构。证书到期后浏览器就不会再信任,会提示证书到期,所以要在证书到期前申请新的证书并替换,这也是为了安全性着想,时间过得越长,证书私钥内容就越有可能被泄露。而且一个网站也不一定是永久的,更多时候一个网站只存在一段时间,若网站不存在了,证书一直有效,那又会引发众多问题。

付费证书的话适合企业,一年花费要个小几千的,只是个人用或者小团体之类的推荐直接申请免费证书。

三、申请 SSL 证书

FreeSSL 官网

首先进入 FreeSSL 官网,如下图所示,可以看到 FreeSSL 提供了两个免费申请证书的品牌,一个是 TrustAsia,还有一个是 Let’s Encrypt,前者可以申请有效期一年的证书,但是一个证书最多只支持两个域名,后者可以申请多域名通配符证书,但是有效期只有 3 个月,具体要看你的取舍了。

如果只需要申请一两个域名,那么就选前者,如果需要用到很多域名,并且可以接受每三个月就申请一次的频率的话,那么就选后者。

需要注意的是,TrustAsia 在同一主域名下最多申请 20 个证书

freessl 官网

在输入框填入你想申请证书的域名,可以用逗号分隔多个域名,我这里用了我自己的域名来举例说明,请填写你自己的域名

比如我填入了 aaa.sprov.xyz,bbb.sprov.xyz,并且选择了 Let’s Encrypt 颁发机构,如果想申请通配符证书,则可以写 *.sprov.xyz,表示这个证书可以用于 sprov.xyz,以及 sprov.xyz 下的所有三级域名,但是不可用于四级域名。

注意品牌的选择,根据你自己的需求来选择品牌,不一定非要跟我选一样的。

填写域名

填完之后,点击【创建证书】,需要填写一个邮箱,这个邮箱的作用是,在证书到期前给你发送邮件提醒,并且你可以在 FreeSSL 使用这个邮箱注册一个账号,登录后台会显示这个邮箱已经申请的证书。

下面的选择保持默认就可以,然后【点击创建】。

填写邮箱

提示下载 KeyManager,这个软件是用来管理你的 SSL 证书的,按照提示去官网下载安装就行了。然后再在浏览器点击【再次尝试启动 KeyManager】,启动即可。

下载 KeyManager

从浏览器打开 KeyManager 之后,KeyManager 会先让你设置一个密码,设置一个就好,然后 KeyManager 会生成 CSR,并保存在你的电脑中,不用自己操作,再回到网页继续。

CSR 生成成功

点击【继续】

点击继续

然后会提示你添加 TXT 解析记录,这一步是验证这个域名是不是你的,多个域名会要求添加多个解析记录,具体看你自己的情况来。

添加解析记录

然后去你的域名管理商添加解析记录,我就拿 CloudFlare 举例。类型选择 TXT,名称和值就按要求填就好。

添加TXT解析记录

解析记录添加完之后,可能要等几分钟才能生效,你可以多等等,觉得差不多了就【点击验证】。

验证成功后就会显示你的证书内容,你可以保存在 KeyManager 中,也可以下载证书,要注意的是,证书内容只会显示这一次,所以必须要保存下来

推荐先保存到 KeyManager 中,然后再下载证书,证书文件很重要,请妥善保管,不要泄露。

验证成功

此时,你的证书就申请成功了。

四、证书说明

从 FreeSSL 下载下来的证书,是一个压缩包,解压后里面有两个文件,一个是公钥,后缀名是 .pem,一个是私钥,后缀名是 .key,公钥是可以公开的,任何人都可以知道,私钥则不能被别人知道,否则网站就跟裸奔一样,所以一定不能泄露自己的私钥

证书文件

有些时候你可能会看到 .crt,.cer 等后缀名,甚至有可能不止两个文件,可能有多个文件,而且后缀名都一样。不要觉得很迷惑,你这样想,其实原理都是一样的,都是一个公钥一个私钥,你用文本的方式查看文件内容,你会发现一些规律。

公钥都是以 BEGIN CERTIFICATE 开头,以 END CERTIFICATE 结束,有可能一个文件里有多个这样的组合,因为这是证书链,这里不扩展证书链的概念,直接可以认为是公钥

公钥内容

私钥则是以 BEGIN RSA PRIVATE KEY 开头,END RSA PRIVATE KEY 结尾,只要看到 PRIVATE 字样,那就是私钥文件了。

只要弄清楚了公钥和私钥这两者,那么配置起来就好说了。

私钥内容

五、总结

关于证书的使用,这篇文章就不做说明了,应用场景有很多,比如在 nginx 等众多不同的 http 服务器软件上配置 ssl 等。基本步骤大致都是先上传证书公钥和私钥到服务器上,然后修改 http 服务器软件的配置文件,再重启 http 服务器软件就可以了。

本人才学疏浅,对 ssl 证书的理解不算很深刻,如果文章中有错误的地方,欢迎指出。

这篇文章有 7 个评论

  1. 头像

    我的证书信息那一页只有保存到keymanager没有下载证书这个按钮。。。怎么破

  2. 头像

    cloudflare安装第三方SSL证书需要升级到企业版啊

  3. 头像

    公钥有二个BEGIN和END,这二个合起来才是完整的公钥,对吗?

    1. sprov

      都用上就行

  4. 头像

    从 FreeSSL 下载下来的证书,密钥private.key是空白的,这是为什么?我看到你的网站截图,私钥也是空白的

    1. sprov

      这个就不清楚了,我下载下来的密钥是没问题的

  5. 头像

    我用的宝塔里面的一键设置也挺方便的

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

关闭菜单