acme.sh命令 Li.018

1. acme.sh 常见命令 # 查询所有命令 acme.sh -h # acme.sh更改申请证书机构 acme.sh --set-default-ca --server letsencrypt # http方式申请证书, lizicai.com域名, --webroot指定访问文件夹 acme.sh --issue -d lizicai.com --webroot /root/test/ # 手动dns申请证书 acme.sh --issue --dns -d lizicai.com # 使用dns提供接口, 自动dns申请证书, 以阿里云为例 export Ali_Key="Ali_Key" export Ali_Secret="Ali_Secret" acme.sh --issue --dns dns_ali -d lizicai.com # Cloudflare 为例 export CF_Key="你的Global API Key" export CF_Email="注册Cloudflare邮箱" acme.sh --issue --dns dns_cf -d \*.lizicai.com # 检查并更新所有证书 acme.sh --cron # 设置更新证书通知, 以钉钉 dingtalk通知为例 export DINGTALK_WEBHOOK='复制的Webhook' export DINGTALK_KEYWORD=acme acme.sh --set-notify --notify-hook dingtalk # 设置通知级别 # --notify-level <0|1|2|3> # Set the notification level: Default value is 2. # 0: disabled, no notification will be sent. 没有通知 # 1: send notifications only when there is an error. 有错误时才通知 # 2: send notifications when a cert is successfully renewed, or there is an error. 证书更新成功或错误才通知. # 3: send notifications when a cert is skipped, renewed, or error. 跳过证书, 更新证书, 错误都有通知. export NOTIFY_LEVEL='3' # 设置acme.sh 自动升级 acme.sh --upgrade --auto-upgrade 1 # 卸载acme.sh, 并删除所有acme.sh添加crontab任务. acme.sh --uninstall # 证书key和fullchain另存, 在获取证书时一起使用 --key-file /root/cert/lizicai.com/private.key --fullchain-file /root/cert/lizicai.com/fullchain.pem # 获取证书时使用, 可执行的一些命令 --reloadcmd "/usr/sbin/nginx -s reload" # 重新获取证书, 获取证书时使用 -r, --renew # 强制 -f 2. 具体使用可 参考acme.sh获取证书crontab更新及更新通知

July 27, 2021&nbsp;·&nbsp;1 分钟&nbsp;·&nbsp;Lizicai

acme.sh获取证书 设置crontab定时检查更新及更新通知 Li.017

1. acme.sh 是什么 1.1 一个纯粹用Shell(Unix shell)语言编写的ACME协议客户端. 支持shell就能安装. 1.2 支持非盈利证书颁发机构 letsencrypt.org , 可以自由获取免费证书. 1.3 可以自动更新证书. 1.4 支持主流的DNS服务商(DNSPod.cn(腾讯旗下) 阿里云 Cloudflare GoDaddy Amazon), 可申请通配符的证书. 全部DNS服务商支持列表 1.5 支持每次更新证书时发送通知, 支持主流QQ Dingtalk钉钉 Telegram Email Slack, 完整支持列表 2. 安装acme.sh, 设置默认证书分发机构为letsencrypt.org. 2.1 安装acme.sh curl https://get.acme.sh | sh -s [email protected] 2.2 设置默认证书分发机构为letsencrypt.org, 原因非盈利机构letsencrypt目前为止比较安全. ZeroSSL则是商业机构. 更多解释 . acme.sh --set-default-ca --server letsencrypt 3. 申请证书常用方式. http和dns方式. 3.1 http方式, 特点简单易操作.    以Nginx为例, 配置的文件夹/root/test/ 在default.conf增加配置 server{ listen 80; server_name lizicai.com; location / { root /root/test/; index index.html index.htm; } }    确认lizicai.com 解析a记录指向服务器ip 在域名服务商或DNS服务商增加lizicai.com指向服务ip的a记录. ...

July 26, 2021&nbsp;·&nbsp;2 分钟&nbsp;·&nbsp;Lizicai

SQL基本用法二 Li.016

1. 创建表 create table if not exists usrinfo( id INT(11), number INT(11), name VARCHAR(255), birthday DATE ); 2. 查询表结构 show full columns from usrinfo; desc usrinfo; describe usrinfo; 3. 查询创建表的语句 show create table usrinfo; 4. 插入数据 4.1 插入单选数据 insert into usrinfo values (12123123,"hello","1990-02-15"); 4.2 插入多行数据 insert into usrinfo values (12123123,"hello","1990-02-15"), (12123123,"cc","1991-03-01"); 4.3 插入某些列 insert into usrinfo(number,name) values (121234123,"eefef"); 4.4 插入某些列多行 insert into usrinfo(number,name) values (121234123,"eefef"), (121234123,"eefef"); 5. 查询某一列不重复的值 select distinct number from usrinfo; 6. 增加新的列 6.1 增加新列 alter table usrinfo add id int(11); 6.2 并给修改新列的属性 alter table usrinfo change id id int not null auto_increment primary key; 6.3 更改新加列的排序: 把id这列,放到第1列 ...

July 26, 2021&nbsp;·&nbsp;6 分钟&nbsp;·&nbsp;Lizicai

SQL基本用法一 Li.015

1. 建立表 4个表关系 1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 2.课程表 Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号 3.教师表 Teacher(t_id,t_name) –教师编号,教师姓名 4.成绩表 Score(s_id,c_id,s_s_score) –学生编号,课程编号,分数 -- 学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT '', s_birth VARCHAR(20) NOT NULL DEFAULT '', s_sex VARCHAR(10) NOT NULL DEFAULT '', PRIMARY KEY(s_id) ); -- 课程表 CREATE TABLE Course( c_id VARCHAR(20), c_name VARCHAR(20) NOT NULL DEFAULT '', t_id VARCHAR(20) NOT NULL, PRIMARY KEY(c_id) ); -- 教师表 CREATE TABLE Teacher( t_id VARCHAR(20), t_name VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY(t_id) ); -- 成绩表 CREATE TABLE `Score`( s_id VARCHAR(20), c_id VARCHAR(20), s_score INT(3), PRIMARY KEY(s_id,c_id) ); 1.1 插入对应的数据 -- 插入学生表测试数据 insert into Student values('01' , '赵雷' , '1990-01-01' , '男'); insert into Student values('02' , '钱电' , '1990-12-21' , '男'); insert into Student values('03' , '孙风' , '1990-05-20' , '男'); insert into Student values('04' , '李云' , '1990-08-06' , '男'); insert into Student values('05' , '周梅' , '1991-12-01' , '女'); insert into Student values('06' , '吴兰' , '1992-03-01' , '女'); insert into Student values('07' , '郑竹' , '1989-07-01' , '女'); insert into Student values('08' , '王菊' , '1990-01-20' , '女'); insert into Student values('09' , '如花' , '1991-02-15' , '女'); -- 课程表测试数据 insert into Course values('01' , '语文' , '02'); insert into Course values('02' , '数学' , '01'); insert into Course values('03' , '英语' , '03'); insert into Course values('04' , '体育' , '01'); -- 教师表测试数据 insert into Teacher values('01' , '张三'); insert into Teacher values('02' , '李四'); insert into Teacher values('03' , '王五'); -- 成绩表测试数据 insert into Score values('01' , '01' , 80); insert into Score values('01' , '02' , 90); insert into Score values('01' , '03' , 99); insert into Score values('02' , '01' , 70); insert into Score values('02' , '02' , 60); insert into Score values('02' , '03' , 80); insert into Score values('03' , '01' , 80); insert into Score values('03' , '02' , 80); insert into Score values('03' , '03' , 80); insert into Score values('04' , '01' , 50); insert into Score values('04' , '02' , 30); insert into Score values('04' , '03' , 20); insert into Score values('05' , '01' , 76); insert into Score values('05' , '02' , 87); insert into Score values('06' , '01' , 31); insert into Score values('06' , '03' , 34); insert into Score values('07' , '02' , 89); insert into Score values('07' , '03' , 98); insert into Score values('09', '01', 50); insert into Score values('09', '02', 40); insert into Score values('09', '03', 90); insert into Score values('09', '04', 99); 2. SQL练习 查询姓"张"老师的个数 select count(t_id) from Teacher where t_name like "张%"; 查询1990年出生的学生名单 select s_id, s_name from Student where year(s_birth)=1990; 查询课程编号为"02"的总成绩 select c_id,sum(s_score) as '总成绩' from Score where c_id=02; 查询选了课程的学生人数 思路学生唯一, 然后再计算总数 select count(distinct s_id) as "选课人数" from Score; 查询各科成绩最高和最低的分: 以如下的形式显示: 课程ID, 最高分, 最低分 select c_id as 课程ID, max(s_score) as 最高分, min(s_score) as 最低分 from Score group by c_id; 查询每门课程被选修的学生数 select c_id, count(s_id) from Score group by c_id; 查询男生,女生人数 select s_sex as 性别, count(s_id) as 人数 from Student group by s_sex; 查询平均成绩大于60分的学生的学号和平均成绩 学号与平均成绩都在Score表中可以获取到 ...

July 26, 2021&nbsp;·&nbsp;8 分钟&nbsp;·&nbsp;Lizicai

MariaDB MySQL连接的2种常见错误 Li.014

1. 常见MySQL Mariadb连接的2种错误 1.1 错误一 ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES) 1.2 错误二 ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:NO). 2. 错误一 常见错误是密码错误 重置密码即可 3. 错误二 输入账号密码时没有输入密码. 3.1 命令行中没有-p进行无密码登录 3.2 如果是IDE中的yaml文件确定password的缩进正确 cat application.yaml spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/admin username: admin password: 123456 上面的password缩进错误, 就会提示(using password:No) 正确的是 spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/admin username: admin password: 123456

July 25, 2021&nbsp;·&nbsp;1 分钟&nbsp;·&nbsp;Lizicai

编译安装Nginx支持tls1.3 Li.013

1. 直接脚本安装, 分别安装openss 1.1.1k和Nginx. 步骤2 3分步安装是脚本的解释. 步骤4是配置和验证. curl -O https://raw.githubusercontent.com/leezicai/share/master/nginx/yum_install_openssl.sh sh yum_install_openssl.sh curl -O https://raw.githubusercontent.com/leezicai/share/master/nginx/yum_install_openssl_nginx.sh sh yum_install_openssl_nginx.sh 2. 分步安装, 安装Opentssl, tls1.3需要openssl 1.1.1以上版本, 默认CentOS中openssl版本1.1.1以下, 不支持. install_openssl.sh # 安装需要编译的软件 yum install -y gcc gcc-c++ pcre-devel zlib-devel make unzip gd-devel perl-ExtUtils-Embed libxslt-devel openssl-devel perl-Test-Simple yum groupinstall -y 'Development Tools' cd /usr/src wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar xvf openssl-1.1.1k.tar.gz cp -r openssl-1.1.1k openssl cd openssl ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/lib64 shared zlib-dynamic make -j4 make test make install mv /usr/bin/openssl /usr/bin/openssl-backup ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl 3. 分步安装, 编译安装Nginx, 编译安装nginx脚本 3.1 编译安装Nginx, 需要指定openssl的路径. # 编译安装nginx cd /usr/src wget http://nginx.org/download/nginx-1.21.1.tar.gz tar xvf nginx-1.21.1.tar.gz cd nginx-1.21.1 # 使用命令nginx -V查看编译参数, 和官方源保持一致, 仅用添加--with-openssl=/usr/src/openssl即可. ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-openssl=/usr/src/openssl make -j4 make install 3.2 创建Nginx服务, 参考官方 # 创建nginx服务 vi /lib/systemd/system/nginx.service # 输入以下内容 [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target 3.3 启动nginx服务, 已经支持tls1.3. # nginx.service生效 systemctl daemon-reload systemctl enable nginx systemctl start nginx 4. 配置和验证tls1.3 4.1 配置支持tls1.3 在https服务中服务以下参数即可. ...

July 25, 2021&nbsp;·&nbsp;2 分钟&nbsp;·&nbsp;Lizicai

安装Nginx可用服务 Li.012

1. Nginx 简介, 本篇主要Nginx安装. Nginx是免费的开源软件,根据类BSD许可证的条款发布。 Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 根据W3Techs的数据,前100万个网站中的37.7%,前10万个网站中的49.7%,以及前10000个网站中的57.0%被使用. 2. Nginx 安装. 2.1 CentOS 使用默认源安装 yum install nginx 2.2 CentOS 使用Nginx官方源安装, 安装脚本地址 .    创建Nginx官方源 vim /etc/yum.repos.d/nginx.repo # 存入写下面数据 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true    使用yum安装nginx # 默认安装 最新稳定版本nginx. yum install nginx    检查安装成功 nginx -version 2.3 如需编译安装可参考, 编译安装Nginx地址 . 3. 创建Nginx可访问的服务, 开通端口. 仅安装Nginx外部仍然是无法访问的, 需要解决如下问题. 3.1 云服务器开启安全组, 对外网开放可以访问的端口和协议. 以腾讯云为例添加Nginx的80和443端口.    云服务商有无安全组, 蓝色有, 灰色标记无 类型 腾讯云 阿里云 亚马逊云 谷歌云 搬瓦工 有无安全组    以腾讯为例如何开通安全组中 80 和 443 端口. 点击对应的云服务 ...

July 25, 2021&nbsp;·&nbsp;1 分钟&nbsp;·&nbsp;Lizicai

安装MariaDB和设置utf-8mb4字符集 Li.011

1. 安装MariaDB. 二种方式, 使用默认源和自建官方源. 1.1 使用默认源 yum -y install mariadb-server mariadb-client 安装后执行, mysql_secure_installation是初始化 systemctl enable mariadb systemctl start mariadb mysql_secure_installation 1.2 使用自建官方源, 可安装MariaDB 10.5稳定版. 官方文档地址    创建MariaDB.repo vim /etc/yum.repos.d/MariaDB.repo # MariaDB 10.7 CentOS repository list - created 2022-02-16 06:02 UTC # https://mariadb.org/download/ [mariadb] name = MariaDB baseurl = https://tw1.mirror.blendbyte.net/mariadb/yum/10.7/centos7-amd64 gpgkey=https://tw1.mirror.blendbyte.net/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1    再执行安装命令即可, 并初始化 yum install -y mariadb-server mariadb-client systemctl enable mariadb systemctl start mariadb # 初始化 mysql_secure_installation 2. 设置MariaDB字符集. 需要设置1个文件my.cnf 即可 2.1 vim /etc/my.cnf 增加以下内容 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE init_connect='SET NAMES utf8mb4' character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci !includedir /etc/my.cnf.d character-set-client-handshake=FALSE 可以影响collation_connection的结果为utf8mb4_unicode_ci,而不是utf8mb4_general_ci。当然,使用SET collation_connection = utf8mb4_unicode_ci或collation_connection = utf8mb4_unicode_ci也可以。 SET NAMES 指示客户端连接使用的字符集,即向服务器发送 SQL 语句的字符集。 character-set-server 设置服务器字符集。要正确使用 utf8mb4,需要确保客户端、服务器和连接都设置为 utf8mb4。 init_connect等所有其他有关字符集的默认设置都会继承自character-set-server,也即单独指定init-connect、character_set_client, character_set_results,character_set_connection等都是不必须的。因此,上面设置中的init_connect可以省略 3. 重启MariaDB, 连接数据库,检查字符集. 3.1 重启MariaDB systemctl restart mariadb 3.2 连接数据库. # 回车输入密码即可 mysql -uroot -hlocalhost -P3306 -p 3.3 检查字符集 show variables like '%character%'; show variables like '%collation%'; ...

July 21, 2021&nbsp;·&nbsp;2 分钟&nbsp;·&nbsp;Lizicai