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

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。使用acme,自动续签免费的SSL,无忧http升级https,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

这里只进行最简单的操作

安装acme.sh

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

curl  https://get.acme.sh | sh -s email=my@example.com

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

cd ~
ll -a

颁发域名

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

例如:

./acme.sh --issue -d 51ebook.top -d www.51ebook.top -w /home/wwwroot/books

出现如下,则算是成功
在这里插入图片描述

将证书安装到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

常见问题

curl: (35) Encountered end of file

安装服务器位于中国大陆境内, 访问 github 可能会不成功. 所以安装可能会失败.
解决方案

git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

但是仍旧可能产生被墙的问题,如果使用的是lnmp集成环境,可以使用lnmp自带的SSL安装

关于使用lnmp签发不成功的问题

需要注意,如果签发的是 www.域名.com 的形式,你需要两个另外一个是 域名.com,也就是不带www的形式,一定要注意,不要重复签。
当提示你 Enter more domain name的时候,一定不要加上不带www的,两个选择签订一个即可,他们的SSL证书是可以通用的!
在这里插入图片描述
博主在这里踩坑了,导致信息提示404错误
Invalid response from http://域名/.well-known/acme-challenge/X5Sayx6I8h_6EAlGAd53XUOQXTGRwx3vfQDqkEVfPro: 404

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/181690.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!