免费证书如果是阿里云的主机直接申请铁门塞克的1年免费版是极方便的,申请下来后因为在阿里自己的系统内,可以直接面向相对应的产品进行推送,到期后还有自动提醒等等等,服务非常周到,可以看出阿里云一直在打造自己的全家桶。
如果不使用阿里云主机的情况下,可以使用本教程生成证书。或可以看之前的完整版本
证书认证机构为 Let’s Encrypt。 证书的生成有许多方法,这里使用的是比较简单的方法:使用 acme.sh 脚本生成,本部分说明部分内容参考于acme.sh README。
证书有两种,一种是 ECC 证书(内置公钥是 ECDSA 公钥),一种是 RSA 证书(内置 RSA 公钥)。简单来说,同等长度 ECC 比 RSA 更安全,也就是说在具有同样安全性的情况下,ECC 的密钥长度比 RSA 短得多(加密解密会更快)。但问题是 ECC 的兼容性会差一些,Android 4.x 以下和 Windows XP 不支持。只要您的设备不是非常老的老古董,强烈建议使用 ECC 证书。
以下将给出这两类证书的生成方法,请大家根据自身的情况自行选择其中一种证书类型。
证书生成只需在服务器上操作。
安装 acme.sh
执行以下命令,acme.sh 会安装到 ~/.acme.sh
目录下。
|
|
安装成功后执行 source ~/.bashrc
以确保脚本所设置的命令别名生效。
如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:
|
|
Centos自行使用yum
安装,这里不表。
使用 acme.sh 生成证书
证书生成
执行以下命令生成证书:
请注意以下的命令会临时监听 80 端口,请确保执行该命令前 80 端口没有使用
|
|
-k
表示密钥长度,后面的值可以是 ec-256 、ec-284、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的 RSA 证书。
证书更新
由于 Let’s Encrypt 的证书有效期只有 3 个月,因此需要 90 天至少要更新一次证书,acme.sh 脚本会每 60 天自动更新证书。也可以手动更新。
手动更新 ECC 证书,执行:
|
|
如果是 RSA 证书则执行:
|
|