在Linux服务器上手动安装免费的Let’s Encrypt域名证书

准备工作
mkdir / root / letsencrypt / var / www / letsencrypt
cd / root / letsencrypt
我们将使用acme_tiny库。您可以使用任何其他库

wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
我们生成一个标识符密钥

openssl genrsa 4096> /root/letsencrypt/account.key
Nginx中虚拟主机设置中的“添加到服务器”部分

location /.well-known/acme-challenge/ {
别名/ var / www / letsencrypt /;
try_files $ uri = 404;
}
测试中
回声“测试” >> /var/www/letsencrypt/test.txt
并在浏览器中检查

http://domain.com/.well-known/acme-challenge/test.txt
创建私钥,请求证书并创建证书
生成私钥

openssl genrsa 4096> /root/letsencrypt/domain.com.key
我们使用证书的设置创建一个文件,在其中指定我们的电子邮件以及域名

cat << EOF > /root/letsencrypt/domain.com.txt

default_bits = 4096
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=RU
emailAddress=info@domain.com
CN = domain.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = domain.com
DNS.2 = www.domain.com
EOF
创建一个请求

openssl req -new -sha256 -key /root/letsencrypt/domain.com.key \
-nodes -out /root/letsencrypt/domain.com.csr \
-config /root/letsencrypt/domain.com.txt
并运行我们下载的库以获取证书

python acme_tiny.py –account-key /root/letsencrypt/account.key \
–csr /root/letsencrypt/domain.com.csr \
–acme-dir / var / www / letsencrypt /> /root/letsencrypt/domain.com.crt
更新脚本
可以将此脚本添加到cron计划程序中,以自动接收证书。
cat << EOF > renew_cert.sh

#!/bin/bash

python acme_tiny.py –account-key /root/letsencrypt/account.key \
–csr /root/letsencrypt/domain.com.csr \
–acme-dir /var/www/letsencrypt/ > /root/letsencrypt/domain.com.new || exit
mv /root/letsencrypt/domain.com.new /root/letsencrypt/domain.com.crt
service nginx reload
EOF

发表评论