使用acme,自动续签免费的SSL,无忧http升级https

使用acme自动续签免费的SSL

  • 安装acme.sh
  • 颁发域名
  • 将证书安装到nginx下
  • 配置nginx的ssl
  • 自动续签

这里只进行最简单的操作

安装acme.sh

进入你的用户目录,如果你使用root登陆,那么你的用户目录就是 /root/

curl  https://get.acme.sh | sh -s email=[email protected]

这里会在root下生成一个 .acme.sh 文件夹
注意:.开头的文件夹使用ll命令看不见,需要加一个参数-a
命令如下

cd ~
ll -a

颁发域名

# 进入脚本目录
cd ~/.acme.sh
# 执行签发
acme.sh --issue -d 你的域名 -w 你的网站根目录地址

出现如下,则算是成功
使用acme,自动续签免费的SSL,无忧http升级https_第1张图片

将证书安装到nginx下

生成证书后,需要将证书安装/复制到您的 Apache/Nginx 或其他服务器。必须使用此命令将证书安装到目标文件,
请勿使用~/.acme.sh/文件夹中的证书文件,它们仅供内部使用,文件夹结构将来可能会更改。
命令如下

acme.sh --install-cert -d 域名 \
--key-file       /证书key存放路径/域名.key.pem  \
--fullchain-file /证书key存放路径/域名.cert.pem \
--reloadcmd     "nginx重启命令"

例如:

acme.sh --install-cert -d test.ywbj.cc \
--key-file         /home/wwwroot/ssl/51ebook.top.key.pem  \
--fullchain-file  /home/wwwroot/ssl/51ebook.top.cert.pem \
--reloadcmd     "service nginx force-reload"

配置nginx的ssl

server
{
    listen 80;
    server_name 51ebook.top;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 http2;
    server_name 51ebook.top;
    root /home/wwwroot/books;
    index index.html index.htm index.php default.html default.htm default.php;

    ssl_certificate /home/wwwroot/ssl/51ebook.top.cert.pem;
    ssl_certificate_key /home/wwwroot/ssl/51ebook.top.key.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
    ssl_session_cache builtin:1000 shared:SSL:10m;

    # .well-known block for Let's Encrypt
    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        try_files $uri =404;  # Ensure the file actually exists or serve a 404 error
    }

    # WordPress config
    include rewrite/wordpress.conf;

    # PHP path info support
    include enable-php-pathinfo.conf;

    # Nginx status page
    location /nginx_status {
        stub_status on;
        access_log off;
    }

    # Cache control for static files
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires 30d;
    }

    location ~ .*\.(js|css)?$ {
        expires 12h;
    }

    # Deny access to hidden files
    location ~ /\.
    {
        deny all;
    }

    access_log /home/wwwlogs/51ebook.top/acc.log;
    error_log /home/wwwlogs/51ebook.top/err.log warn;
}

自动续签

自动续签不需要做任何操作,acme已经处理好了,可以通过命令查看

crontab -l

有一段类似的代码

56 0 * * * “/root/.acme.sh”/acme.sh --cron --home “/root/.acme.sh” > /dev/null

参考网站:https://blog.csdn.net/weixin_52270081/article/details/126777550

你可能感兴趣的:(http,ssl,https)