飞致云1panel + 雷池WAF
可能有许多人都有这个需求:为自己的个人站点套上WAF,增加安全性,本文将介绍如何将1panel面板深度结合长亭雷池防火墙,实现为个人站点套上WAF并且自动续签ssl证书。
前提条件:
-
服务器IP已绑定域名
-
完整的1panel环境
-
1panel未安装OpenResty
-
有支持 TOTP 的认证软件,如腾讯身份验证器,谷歌身份验证器,微软身份验证器,FreeOTP,Bitwarden等
安装OpenResty
如图找到OpenResty,点击安装。

在安装配置页注意:修改HTTP/HTTPS的默认端口,后期WAF对外使用会占用80,443端口。这里改为180,1443,点击确认安装OpenResty。

此处安装取决于服务器连接 dockerhub 的速度,若为国内服务器或速度过慢,可在容器-配置-镜像加速中填入如下配置:
https://dockerproxy.com
https://hub-mirror.c.163.com
https://docker.m.daocloud.io
https://ghcr.io
https://mirror.baidubce.com
https://docker.nju.edu.cn
站点搭建
如图,按照顺序点击创建网站

静态网站搭建
点击创建静态网站,主域名填写站点域名,其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10000,点击确定创建静态网站。

反向代理网站搭建
反向代理本机的各种工具类站点,以Alist为例,安装时若未选择 端口外部访问,1panel会将其服务端口映射到127.0.0.1而非0.0.0.0,故适合使用反向代理搭建。

主域名填写站点域名,其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10001,点击确定创建反向代理。

运行环境(PHP)网站搭建
PHP站点的搭建,需要先创建运行环境,如下图:


等待安装PHP环境

当状态转为正常时即安装完毕。
点击创建网站,选择运行环境,主域名填写站点域名,其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10003,点击确定创建反向代理。

一键部署网站搭建
一键部署参考此处https://docs.halo.run/getting-started/install/1panel/,注意其他域名填写 127.0.0.1:任意未占用端口。
证书申请
创建Acme账户
如图,按此顺序创建ACME账户,

创建DNS账户
参考 1panel官方文档 创建DNS账户
申请证书
参考 1panel官方文档 申请证书
部署证书
在部署好的站点中,点击配置,点击基本,HTTPS,启用HTTPS,将HTTP选项修改为HTTP可直接访问,下方选择对应证书后保存。


获取证书文件
进入网站目录,进入SSL文件夹,下载保存fullchain.pem,privkey.pem两个文件备用。



部署长亭雷池WAF
长亭雷池的安装可参考该文:https://waf-ce.chaitin.cn/docs/guide/install,注意雷池要求CPU支持ssse3指令集。
我在此选择一键安装,安装到/opt/safeline
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
```成功安装后显示如下:
使用**https://IP:9443**访问WAF使用**支持TOTP的认证软件**进行认证### 添加证书
如图,在`通用配置`-`证书管理`,**添加证书**,上传之前下载的证书文件。

### 站点通用配置
如图,在`通用配置`-**其他**,**站点通用配置**,根据需求开启,我这里全部开启。
### 添加防护站点
如图,在防护站点中,**添加站点**,**根据需求配置**,上游服务器填写**1panel****的OpenResty配置的其他域名**,提交。其他网站同理。### 测试访问
## 自动更新雷池WAF的SSL证书
如下图,在1panel中添加计划任务,添加shell脚本,脚本内容及解析见下。```bash
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/fullchain.pem /opt/safeline/resources/nginx/certs/cert_1.crt
# 从域名的ssl目录下复制证书到safeline的nginx目录下,替换原有证书,该证书用于雷池的防护站点
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/privkey.pem /opt/safeline/resources/nginx/certs/cert_1.key
# 从域名的ssl目录下复制密钥到safeline的nginx目录下,替换原有密钥,该密钥用于雷池的防护站点
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/fullchain.pem /opt/safeline/resources/management/certs/server.crt
# 从域名的ssl目录下复制证书到safeline的nginx目录下,替换原有证书,该证书用于雷池的管理站点,可不设置使用自签证书
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/privkey.pem /opt/safeline/resources/management/certs/server.key
# 从域名的ssl目录下复制密钥到safeline的nginx目录下,替换原有密钥,该密钥用于雷池的管理站点,可不设置使用自签密钥
sudo docker restart safeline-tengine
# 重启safeline的nginx服务,使证书生效
sudo docker restart safeline-mgt-api
# 重启safeline的管理api服务,使证书生效
防护
为保证网站流量均从WAF进入,在1panel中开启防火墙,具体可参考官方文档,屏蔽掉之前配置的OpenResty的默认端口。
相关文章:
飞致云1panel + 雷池WAF
可能有许多人都有这个需求:为自己的个人站点套上WAF,增加安全性,本文将介绍如何将1panel面板深度结合长亭雷池防火墙,实现为个人站点套上WAF并且自动续签ssl证书。 前提条件: 服务器IP已绑定域名 完整的1panel环境 …...
策略梯度简明教程
策略梯度方法 (PG:Policy Gradient) 是强化学习 (RL:Reinforcement Learning) 中常用的算法。 1、从库里的本能开始 PG的原理很简单:我们观察,然后行动。人类根据观察采取行动。 引用斯蒂芬库里的一句话: 你必须依靠…...
鸿蒙原生应用/元服务开发-利用picker选择器来多选相册图片
前言 在之前的时候,测试一个应用进入相册选择图片demo,利用了startAbilityForResult()方法,启动相对应的Ability来完成效果,但是这种方法有限制,一次只能获取一张图片,在完成某些功能测试的时候就很不方便。…...
java:封装统一的响应体code、data、msg、paging
背景 我们在写接口的时候一般不会直接返回给前端数据,而是会有响应体,比如 code、data、msg,这样就有一个统一的结构方便前端处理,那么今天就来封装一个统一的响应体 封装基本响应体 1、在 config 包里新建 ApiResponse.java …...
leetcode算法之栈
目录 1.删除字符串中的所有相邻重复项2.比较含退格的字符串3.基本计算器II4.字符串解码5.验证栈序列 1.删除字符串中的所有相邻重复项 删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {string ret;//使用数组模拟栈操作for(auto …...
电脑上mp4视频文件无缩略图怎么办
前言:有时候电脑重装后电脑上的mp4视频文件无缩略图,视频文件数量比较多的时候查找比较麻烦 以下方法亲测有效: 1、下载MediaPreview软件 2、软件链接地址:https://pan.baidu.com/s/1bzVJpmcHyGxXNjnzltojtQ?pwdpma0 提取码&…...
【Centos8】配置网络镜像源
文章目录 配置 yum 源配置网络 yum 源备份下载阿里 centos-base.repo 到 /etc/yum.repos.d/安装 EPEL 源测试安装 配置 yum 源 # 检查是否安装了 yum rpm -qa|grep yum# 查看本地已安装的所有软件包 yum list installed# 查看软件包安装位置 # 查看某个东西的软件包 rpm -qa|g…...
深入学习Synchronized各种使用方法
文章目录 前言一、synchronized关键字通用在下面四个地方:1.1synchronized修饰实例方法1.2synchronized修饰静态方法:1.3synchronized修饰实例方法的代码块1.4synchronized修饰静态方法的代码块2.读入数据 二.Sychronized关键特性2.1互斥2.2 刷新内存2.3…...
【idea】设置鼠标滚轮控制缩放大小
1、点击file 选择Setting 2、点击Editor 下面的 General 3、勾选 Mouse Control 下面的 Change font size with CtrlMouse Wheel in 4、点级apply 5、按 ctrl键 鼠标滚轮缩放字体的大小...
合并两个有序数组(leetcode_刷题1)
目录 题目:合并两个有序数组 题目分析方向1: 题目分析方向2: 题目:合并两个有序数组 题目要求: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums…...
麒麟linux将图片批量生成PDF的方法
笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: wind…...
Linux——vim编辑文件时——.swp文件解决方案
test.cpp样例 当我们vim test.cpp进入编辑文件。 却忘记了保存退出 再次进入就会出现一下画面 当你摁下Enter键位 出现以下几个选项 O——是只读不写 E——是正常打开文件但不会载入磁盘内容 R——覆盖——是加载存储磁盘的文件(当我们忘记保存时,系统会自动帮我…...
【Maven】清理 maven 仓库
初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载)。 可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此…...
APOLLO自动驾驶技术沙龙:未来已来,共创智能交通新时代
在这次Apollo会议上,我深刻地感受到了人工智能自动驾驶技术领域的最新进展和未来趋势。作为一名从事软件开发工作的人员,我深感荣幸能够参加这次盛会。 前言 本次活动是百度Apollo社区工程师齐聚首钢Park,带来现场实操与技术分享。主要围绕Ap…...
Java面试题12
1.redis 怎么实现分布式锁? Redis可以通过以下方式实现分布式锁: 使用RedLock算法:多个Redis节点组合使用,通过竞争锁来达到分布式锁的效果。使用SETNX命令:利用SETNX(SET if Not eXists)命令…...
ubuntu上创建服务启动python脚本
场景 最近在使用ubuntu服务器部署MySQL和同步数据,同步数据使用的是python,但是我不能直接操作服务器,只能通过Xshell远程访问服务器,但是启动python脚本的时候如果关掉xshell会停止Python脚本,所以如果要让python脚本…...
51单片机制作数字频率计
文章目录 简介设计思路工作原理Proteus软件仿真软件程序实验现象测量误差和范围总结 简介 数字频率计是能实现对周期性变化信号频率测量的仪器。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行较慢,而且测量频率的范围较小。这…...
java中强引用、软引用、弱引用、虚引用的区别是什么?
Java中的引用类型主要分为强引用、软引用、弱引用和虚引用,它们之间的区别主要体现在垃圾回收的行为上。 强引用(Strong Reference):这是使用最普遍和默认的引用类型。如果一个对象具有强引用,那么垃圾回收器就永远不会…...
springboot -事务管理
事务 概念 事务是一组操作的集合,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败。 操作 开启事务: start transaction / begin提交事务:commit回滚事务: rollback 注解 Transactional …...
商城系统通过Kafka消息队列,实现订单的处理和状态更新
以下是一个简单的Spring Boot应用程序示例,演示如何使用Kafka实现订单的处理和状态更新。 首先,我们创建一个名为“order”的topic,在application.yaml配置文件中添加Kafka的配置: spring:kafka:bootstrap-servers: localhost:9…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
