0 进入https目录
cd /data/www/https
1 创建账户私钥
openssl genrsa 4096 > account.key
这个密钥是用来给Let's Encrypt网站验证身份的。
2 创建CSR文件
下面的步骤就是为生成SSL证书做准备了。
首先用下面的命令生成域名密钥。
openssl genrsa 4096 > domain.key
之后生成CSR文件,这里要将需要SSL的域名填进去,以我的网站为例,我将顶级域名和www域名都添加了进去。
openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/pki/tls/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:xxx.sykzfm.cn")) > domain.csr
3 域名验证
创建challenges目录
cd /data/www/
mkdir challenges
在Let's Encrypt进行证书签发之前,需要对我们的网站验证所有权。具体来说,他会访问网站的/.well-known/acme-challenge/
目录来查看有没有他要求的文件。
在这里,我们只需在网站根目录下创建该文件夹即可。
4 创建证书
首先,下载acme-tiny自动化证书管理脚本。
wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
接着,指定账户密钥、域名密钥以及验证网站所有权时使用的目录。
python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /data/www/challenges> ./signed.crt
最后,需要将中间证书和网站证书合并:
wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem
cat signed.crt intermediate.pem > chained.pem
这样,我们最终的证书就是chained.pem
。