使用 acme.sh 申请免费的 ssl 证书

废话不说直接上代码

1、安装 acme.sh

curl  https://get.acme.sh | sh -s email=xxx@example.com
source ~/.bashrc

2、acme.sh 默认的 ca 是 zerossl,如果想使用 letsencrypt 使用下面的命令修改

acme.sh --set-default-ca --server letsencrypt

3、申请证书

# 首先有个 nginx 服务器且公网可访问(域名已经解析到该服务器),如何安装这里不再说
# webroot 目录下建个目录
mkdir -p /usr/share/nginx/html/.well-known/acme-challenge
chown -R nginx:nginx /usr/share/nginx/html/.well-known

# 申请证书
acme.sh --issue -d wintok.cc -d www.wintok.cc --webroot /usr/share/nginx/html/ -k ec-256

4、安装证书并重载 nginx (默认会自动添加一条crontab命令,启动crond服务就会自动续期,默认60天自动续期)

acme.sh --installcert -d wintok.cc -d www.wintok.cc --key-file /etc/ssl/wintok.cc.key --fullchain-file /etc/ssl/wintok.cc.pem --ecc --reloadcmd  "systemctl reload nginx"

5、nginx 配置 ssl 证书

# Http Server,强制跳转Https
server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  wintok.cc www.wintok.cc;

    rewrite      ^(.*)$ https://www.wintok.cc$1 permanent;
}

# Https Server
server {
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;
    server_name  www.wintok.cc;
    root         /usr/share/nginx/html;
    index        index.html index.htm;

    ssl_certificate      /etc/ssl/wintok.cc.pem;
    ssl_certificate_key  /etc/ssl/wintok.cc.key;

}

 

posted @ 2026-04-22 22:49  运维工作栈  阅读(16)  评论(0)    收藏  举报