分类 K3S 下的文章

一、Certbot 简介

是Let's Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let's Encrypt 证书。Certbot 是支持所有 Unix 内核的操作系统的。

sudo yum install snapd               #安装 snapd
sudo snap install --classic certbot  #使用snapd安装 Certbot
sudo ln -s /var/lib/snapd/snap /snap #创建软链接保证命令

二、申请证书

执行证书生成命令,去云服务商后台增加一条dns,并将certbot生成的参数填写到dns配置的相关位置

certbot certonly -d *.lius.fun --manual --preferred-challenges dns
  • certonly 表示安装模式,Certbot 有安装模式和验证模式两种类型的插件
  • -d 为那些主机申请证书,如果是通配符,输入 *.example.com
  • --manual 表示手动安装插件,Certbot 有很多插件,不同的插件都可以申请证书,用户可以根据需要自行选择
  • --preferred-challenges dns 使用 DNS 方式校验域名所有权

[button color="light" icon="" url="https://letsencrypt.org/docs/challenge-types/#http-01-challenge" type=""]其他挑战方式[/button]

三、自动申请

Let’s Encrypt 证书将在 90 天后到期。我们建议您自动更新证书。此处,我们将一个 cron 作业添加到现有 crontab 文件中,以执行这一操作。

  1. 打开 crontab 文件
$ crontab -e
  1. 添加certbot命令,并设置为每天运行。在本例中,我们每天中午运行该命令。该命令检查服务器上的证书是否会在未来 30 天内到期,如果是,则更新证书
0 12 * * * /usr/bin/certbot renew --quiet

[scode type="share"]-quiet指令告知certbot不要生成输出[/scode]

四、手动申请

手动申请需要进行DNS挑战,请注意开启
cd /etc/letsencrypt/renewal
cat lius.fun.conf
certbot certonly --email gua3j7@126.com -d *.lius.fun --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

准备工作:

Typecho生成备份文件

一、docker容器环境配置

1、docker 生成容器

docker run -itd 
  --name project
  --net photoprism_default         #保证和MariaDB一个网络环境
  -p 4888:4888                     #宝塔面板端口
  -p 4810:4810  
  -p 4820:4820 
  -p 4830:443
  --restart always  
  --privileged  
  -v /volume1/docker/project:/www   #使用宝塔面板快速部署
  -v /volume1/Mii:/opt/filerun      #Flerun可持续化环境
  centos7

2、安装宝塔面板

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

3、安装完毕后设置端口为4888

4、宝塔面板安装PHP7.4(7.3)、 Nginx1.24

说明:容器网络模式默认使用bridge忘记修改为photoprism_default,则使用以下办法

docker network disconnect bridge project  #解除网络绑定
docker network connect photoprism_default #网络绑定
docker restart project
重启生效后会导致宝塔面板、Nginx停止,请手动启动

二、远程数据库配置

1、进入MaraDB数据库容器

docker exec -it maradb bash
mysql -u root -p                   #photoprism系列的MariaDB数据密码为photoprism             
create database typecho;           #创建typecho数据库
create user 'typecho'@'%' identified by 'your_password';     #创建用户typecho
grant all on typecho.* TO 'typecho'@'%';                    #typecho用户授权任何ip可访问typecho数据库 
flush privileges;                  #刷新操作

三、宝塔面板创建网站

1、创建Typecho网站,将4810端口分配给网站

2、进入安装向导,输入远程MariaDB数据库IP地址等信息

如一直显示:正在设置数据库、数据库不存在df_user
则可能是:

  • MariaDB和project不在photoprism网络
  • 账户密码错误权限未设置
  • fileru.zip文件解压后数据重复安装,导致存在缓存,影响数据库判断

注意:最好使用drop user 'user'@'localhost'&& flush privileges

四、安装完毕后打开后台上传即可

Typecho导入成功.png

先前的都是访问都是动态的,每次访问都要经过FastCGI和数据库的处理,在性能上对服务器造成了一定的损耗,且存在各种SQL注入和XSS注入

综上所属,应该对业务主题为主要访问功能的进行伪静态设置

  1. 配置文件添加(location)
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}
        }
  1. 在typecho后台-设置-永久链接-自定义文章路径中选择个性化定义,更改为

Typecho伪静态.png

注意:地址重写可能会报错提醒,请强制性进行地址重写