acme.sh申请Let‘s Encrypt 免费HTTPS证书

1.安装acme.sh(新的操作流程已更新,更新时间2022-10-14)

该文档基于ubuntu 20.04操作,基本大同小异,这里附上官方文档供对比参考,如果出现其他问题的可以邮箱留言 [email protected]
curl https://get.acme.sh | sh
# 上述命令如何发现卡在下载github的master.tar.gz的包,可以直接外部下载后上传到该目录下
# 如果无法科学上网的同学,这里提供下载链接
# https://vkceyugu.cdn.bspapp.com/VKCEYUGU-04695fc2-7efc-4587-80cd-faa4d3183a10/a4d3d7d5-7985-45af-9976-3b217682489f.gz
# 下载后改名master.tar.gz上传即可
source ~/.bashrc

2.配置nginx (配置后记得reload一下)

server {
	listen 80;
	server_name www.e-pan.cn; # 域名
	location /.well-known/acme-challenge {
        # 自己定义的位置,用于校验服务器所有权
        root /var/www/letsencrypt;
    }
}

3.申请证书

设置邮箱,设置过了可以跳过
acme.sh --register-account -m [email protected]
-d 后面为域名,–webroot后面是刚才创建的目录
acme.sh --issue -d www.e-pan.cn --webroot /var/www/letsencrypt
申请成功显示
[Mon 12 Jul 2021 05:02:17 AM CEST] Using CA: https://acme.zerossl.com/v2/DV90
[Mon 12 Jul 2021 05:02:17 AM CEST] Creating domain key
[Mon 12 Jul 2021 05:02:18 AM CEST] The domain key is here: /root/.acme.sh/www.e-pan.cn/www.e-pan.cn.key
[Mon 12 Jul 2021 05:02:18 AM CEST] Single domain='www.e-pan.cn'
[Mon 12 Jul 2021 05:02:18 AM CEST] Getting domain auth token for each domain
[Mon 12 Jul 2021 05:02:20 AM CEST] Getting webroot for domain='www.e-pan.cn'
[Mon 12 Jul 2021 05:02:20 AM CEST] Verifying: www.e-pan.cn
[Mon 12 Jul 2021 05:02:23 AM CEST] Success
[Mon 12 Jul 2021 05:02:23 AM CEST] Verify finished, start to sign.
[Mon 12 Jul 2021 05:02:23 AM CEST] Lets finalize the order.
[Mon 12 Jul 2021 05:02:23 AM CEST] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/n2z04SLOtSQ_xve9sQ3I1w/finalize'
[Mon 12 Jul 2021 05:02:24 AM CEST] Order status is processing, lets sleep and retry.
[Mon 12 Jul 2021 05:02:24 AM CEST] Retry after: 15
[Mon 12 Jul 2021 05:02:40 AM CEST] Polling order status: https://acme.zerossl.com/v2/DV90/order/n2z04SLOtSQ_xve9sQ3I1w
[Mon 12 Jul 2021 05:02:41 AM CEST] Downloading cert.
[Mon 12 Jul 2021 05:02:41 AM CEST] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/fxaUkhWOVAcZqsKct_9BbQ'
[Mon 12 Jul 2021 05:02:41 AM CEST] Cert success.
......
# 这里省略证书内容
......
[Mon 12 Jul 2021 05:02:41 AM CEST] Your cert is in  /root/.acme.sh/www.e-pan.cn/www.e-pan.cn.cer 
[Mon 12 Jul 2021 05:02:41 AM CEST] Your cert key is in  /root/.acme.sh/www.e-pan.cn/www.e-pan.cn.key 
[Mon 12 Jul 2021 05:02:41 AM CEST] The intermediate CA cert is in  /root/.acme.sh/www.e-pan.cn/ca.cer 
[Mon 12 Jul 2021 05:02:41 AM CEST] And the full chain certs is there:  /root/.acme.sh/www.e-pan.cn/fullchain.cer

4.安装证书

上面的命令会在/root/.acme.sh/www.e-pan.cn目录下生成证书
官方不推荐直接引用.acme.sh目录下的证书,创建目录安装证书(我习惯放在nginx下)
mkdir -p /etc/nginx/ssl
cp /root/.acme.sh/www.e-pan.cn/www.e-pan.cn.cer /etc/nginx/ssl/www.e-pan.cn.cer
cp /root/.acme.sh/www.e-pan.cn/www.e-pan.cn.key /etc/nginx/ssl/www.e-pan.cn.key
运行下面命令,在上面的位置存入证书
务必执行,否则安卓手机校验证书会有问题
acme.sh --installcert -d www.e-pan.cn --keypath /etc/nginx/ssl/www.e-pan.cn.key --fullchainpath /etc/nginx/ssl/www.e-pan.cn.cer

5.再次配置nginx

server {
    	listen      443 ssl http2;	# 服务器不支持http2可删除
    	server_name  www.e-pan.cn;

       	ssl on;		# 新版nginx可删除该配置
        ssl_certificate      /etc/nginx/ssl/www.e-pan.cn.cer;    # 证书路径
        ssl_certificate_key  /etc/nginx/ssl/www.e-pan.cn.key;    # 证书路径
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        root /var/www/html;
        index index.html index.htm;
        location / {
                try_files $uri $uri/ =404;
        }
}

# 强制 http 跳转 https
server {
        listen      80;
        server_name www.e-pan.cn;
        return      301 https://$server_name$request_uri;
}

6.重载nginx配置

几个注意点:
1.校验nginx配置是否正确(nginx -t) 2.服务器是否开启443端口
nginx -s reload

7.自动更新证书(待验证,可手动更新)

目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心。

8.其他命令

手动更新证书
acme.sh --renew -d www.blscy.cn --force
证书列表
acme.sh --list
停止更新
acme.sh --remove -d example.com

你可能感兴趣的:(笔记,云服务器,工具使用,linux,ssl,https)