本人微信公众号"aeolian"~

Linux生成TLS证书

安装acme.sh

证书的生成有许多方法,这里使用的是比较简单的方法:使用 acme.sh 脚本生成。

注意:针对debian9系统,在执行安装acme.sh脚本之前,需要提前安装必备软件包。不然会有提示”It is recommended to install socat first”等错误信息提示。

必备软件包安装执行命令:

apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y

安装 acme.sh

执行以下命令:

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

安装成功后执行 以下命令,以确保脚本所设置的命令别名生效:

source ~/.bashrc

如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:(注:debian9在安装过程中没有报错,所以这步不需要执行)

apt-get -y install netcat

以下的命令会临时监听 80 端口,而80端口被Ngnix服务占用,所以要暂停Ngnix服务:

systemctl stop nginx 

生成证书

注意:脚本中的域名mydomain.me改成自己的

~/.acme.sh/acme.sh --issue -d mydomain.me --standalone -k ec-256

安装成功后提示生成的秘钥证书的路径,证书路径是自动生成的。

《Linux生成TLS证书》

证书更新(脚本自动)

由于 Let’s Encrypt 的证书有效期只有 3 个月,因此需要 90 天至少要更新一次证书,acme.sh 脚本会每 60 天自动更新证书。所以这步不需要做。(但如果你不放心,也把手动更新的指令提供一下,供参考。)

手动更新 ECC 证书,执行:

~/.acme.sh/acme.sh --renew -d mydomain.com --force --ecc

如果是 RSA 证书则执行:

sudo ~/.acme.sh/acme.sh --renew -d mydomain.com --force

安装证书和密钥(ECC和RSA二选一)

ECC优点:同等长度 ECC 比 RSA 更安全 ECC缺点:兼容性会差一些

只要设备不是非常老的老古董,建议使用 ECC 证书。

ECC 证书将证书和密钥安装到 /etc/crt 中执行:(注意:脚本中的域名改成自己的,/etc/crt路径可以自己制定)

$ sudo ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/crt/autumn.crt --keypath /etc/crt/autumn.key --ecc

RSA 证书执行:(/etc/crt路径可以自己制定

$ sudo ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/crt/autumn.crt --keypath /etc/crt/autumn.key

注意:无论什么情况,密钥(即上面的.key)都不能泄漏,如果你不幸泄漏了密钥,可以使用 acme.sh 将原证书吊销,再生成新的证书,吊销方法请自行参考 acme.sh 的手册。

安装成功如下图:

《Linux生成TLS证书》

 



点赞

Leave a Reply

Your email address will not be published. Required fields are marked *