使用acme自动续签免费的SSL
- 安装acme.sh
- 颁发域名
- 将证书安装到nginx下
- 配置nginx的ssl
- 自动续签
这里只进行最简单的操作
安装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 你的网站根目录地址
出现如下,则算是成功
将证书安装到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