linux中获取/更新Let’s encrypt 证书的脚本

调用 acme_tiny.py 认证、获取、更新证书,不需要额外的依赖。

下载到本地

wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh
chmod +x letsencrypt.sh
配置文件

只需要修改 DOMAIN_KEY DOMAIN_DIR DOMAINS 为你自己的信息

ACCOUNT_KEY=”letsencrypt-account.key”
DOMAIN_KEY=”example.com.key”
DOMAIN_DIR=”/var/www/example.com”
DOMAINS=”DNS:example.com,DNS:whatever.example.com”
执行过程中会自动生成需要的 key 文件。

运行

./letsencrypt.sh letsencrypt.conf
注意

需要已经绑定域名到 /var/www/example.com 目录,即通过 http://example.com http://whatever.example.com 可以访问到 /var/www/example.com 目录,用于域名的验证

看到以下信息表示生成/更新成功

Generate CSR…
Parsing account key…
Parsing CSR…
Registering account…
Already registered!
Verifying www.hdj.me…
www.hdj.me verified!
Signing certificate…
Certificate signed!
New cert: www.chained.crt has been generated
生成证书包括

-rw-r–r– 1 root root 3.2K Dec 28 17:04 letsencrypt-account.key
-rw-r–r– 1 root root 192 Dec 28 17:03 letsencrypt.conf
-rwxr-xr-x 1 root root 1.7K Dec 28 16:57 letsencrypt.sh
-rw-r–r– 1 root root 1.7K Dec 24 00:58 lets-encrypt-x1-cross-signed.pem
-rw-r–r– 1 root root 3.4K Dec 29 08:38 www.chained.crt
-rw-r–r– 1 root root 1.8K Dec 29 08:38 www.crt
-rw-r–r– 1 root root 920 Dec 29 08:37 www.csr
-rw-r–r– 1 root root 1.7K Dec 28 17:04 example.com.key
nginx配置

listen 443 ssl;
ssl_certificate /path/letsencrypt/www.chained.crt;
ssl_certificate_key /path/letsencrypt/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
cron 定时任务

每个月自动更新一次证书,可以在脚本最后加入 service nginx reload等重新加载服务。

0 0 1 * * /etc/nginx/certs/letsencrypt.sh /etc/nginx/certs/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1

时间: 2024-10-01 21:02:00

linux中获取/更新Let’s encrypt 证书的脚本的相关文章

linux中获取root权限 php执行shell

有的时候,通过php做很多系统操作的时候,并不如直接利用bash来的快.php-fpm默认是apache用户,直接改成root账户,是启动不了的.这样的话,apache用户无法执行root才能执行的命令.所以我们要先使php-fpm的启动用户,拥有执行shell的权限,以及shell内部执行命令的权限. 一,获取root权限 1,给具体进程指定无密码访问 # visudo       //添加以下内容,文件最下面有例子,照着写  apache ALL=(ALL) NOPASSWD:/etc/in

linux中yum更新遇到依赖错误问题解决办法

redhat系列linux系统的yum,有时会出现错误的依赖,用linux早期,遇到该类问题简直是束手无策,无奈之下会在yum的"教唆"下使用"--skip-broken"参数,有时确实可以解决问题,但有时的后果,可以把系统玩儿坏,下次启动无法启动,或出现其它莫名其妙的问题. 列一个典型的错误依赖消息如下: --> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 libva1-1.3.1-11.el7.x86_64 需要 --> 正在

详解Linux中获取全球唯一标示符UUID的方法

  UUID(Universally Unique IDentifiers),全球唯一标示符.它是一个标识系统中的存储设备的字符串,使其确定系统中的所有存储设备. 为什么要使用UUID?因为系统自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序.相同的名称可能代表不同的硬盘分区.如果每个分区有一个唯一的UUID值,尤其是在grub中的kernel设置,这样就不会发生分区识别混乱的问题. 下面介绍几种方法来获得UUID. 1.最简单的方法就是使用blkid命令,它主要用来对系统的

linux中获取系统时间的几种方法

  asctime(将时间和日期以字符串格式表示)   相关函数 time,ctime,gmtime,localtime 表头文件 #include<time.h> 定义函数 char * asctime(const struct tm * timeptr); 函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回. 此函数已经由时区转换成当地时间,字符串格式为:"Wed Jun 30 21:49:08

Linux中获取某个进程的系统调用以及参数(故障排查案例)_linux shell

当一个程序发生故障时,有时候想通过了解该进程正在执行的系统调用来排查问题.通常可以用 strace 来跟踪.但是当进程已经处于 D 状态(uninterruptible sleep)时,strace 也帮不上忙.这时候可以通过 复制代码 代码如下: cat /proc/<PID>/syscall 来获取当前的系统调用以及参数. 这里用最近排查的一个问题为例.碰到的问题是,发现一台服务器在执行 pvcreate 创建物理卷的时候卡死,进程状态为 D 复制代码 代码如下: # ps aux|gre

linux中自动分区、格式化、挂载shell脚本

功能:自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载 解决了什么问题:一键式检测是否有尚未分区的数据盘,并能对其格式化和自动挂载,省去了复杂的命令和步骤 执行方法:以root身份执行命令  代码如下 复制代码 wget http://mirrors.linuxeye.com/scripts/auto_fdisk.sh chmod +x auto_fdisk.sh ./auto_fdisk.sh 结果: 脚本内容如下:  代码如下 复制代码 #!/bin/bash # Author: 

linux中shell批量添加用户和设置随机密码脚本

有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个脚本,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的. 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加.分别写一下案例如下: 1,for添加指定类型用户以及设置随机密码. 脚本作用:批量添加user1-10用户并设置随机8位数随机密码 #!/bin/bash #test add user and set passwd for n in `seq 10` do

linux中利用shell定时清理网站缓存数据脚本

经过测试,脚本不成立!! 网站采用了一些方法进行加速(redis\cdn),这样就降低用户访问后端mysql的压力.以及前端速度不太好的问题,对用户请求到的所有页面进行了缓存,既然数据缓存了,解决用户看到的页面是否为最新页面就提上日程,下面这个脚本就诞生了.嘿嘿... Shell #!/bin/bash # Author:Byrd # Version:0.1 # Contact:root#t4x.org # define category for category in basic code d

linux中检测服务器服务与端口的shell脚本

说明: 主程序:check_port 邮件联系人列表:contacts_list 端口列表文件:port_list check_port脚本变量文件:profile_global check_port邮件功能变量文件:profile_mail 具体修改参数参考脚本注释修改 check_port 邮件联系人列表 contacts_list 端口列表文件 #写入邮件联系人邮箱地址 port_list端口文件 192.168.10.15 80 192.168.10.15 8080 192.168.10