基于CF的DNS相关api自动申请SSL证书

acme.sh的准备

acme.sh在serv00上面不需要root权限也可以自由调用,所以挺好的。

#安装acme.sh(serv00)
curl https://get.acme.sh | sh -s [email protected]
./acme.sh --install -m [email protected]
#安装socat
apt install socat
#绑定指令
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh

1:SSL证书部署到serv00面板

1.在CF的个人用户界面申请一个DNS相关token,勾选你需要调整的域名的“区域”。导出为临时用户变量:export CF_Token="CFtoken123456abcdef"

2.申请ssl证书:acme.sh --issue --dns dns_cf -d exampledomain.com --standalone -k ec-256

3.部署ssl证书到需要部署业务的网站/文件目录下:

acme.sh --installcert -d exampledomain.com \ 
--key-file /usr/home/USER/domains/ssl/site/site1.key \ 
--fullchain-file /usr/home/USER/domains/ssl/site/site1.crt --ecc

4.serv00用的是devil的panel,所以查了一下文档,直接把上面的证书绑定到对于网站的目录就能用了。

devil ssl www add 123.456.789.000 /usr/home/USER/domains/ssl/site/site1.crt /usr/home/USER/domains/ssl/site/site1.key site.com

记得替换上面代码里面比较奇怪的地方。

另外本地香橙派部署类似业务也可以用这招。

2:在serv00安装memos

首先一键安装pm2

bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)

关ssh,再开。

然后从panel开网站,然后申请两个连续的端口开放,其中较小的一个作为网站反代端口使用。

首先按上面的操作把ssl的那一套搞定。

然后在网站的public_html路径下运行:

API_URL="https://api.github.com/repos/k0baya/memos-binary/releases/latest"
DOWNLOAD_URL=$(curl -s $API_URL | jq -r ".assets[] | select(.name == \"memos-freebsd-amd64.tar.gz\") | .browser_download_url")
curl -L $DOWNLOAD_URL -o memos-freebsd-amd64.tar.gz
tar -xzvf memos-freebsd-amd64.tar.gz && rm memos-freebsd-amd64.tar.gz && chmod +x memos

因为连外部mysql比较麻烦,所以就直接用SQLite:

# 假定你的数据文件打算存储在 /home/username/domains/examplesite.com/public_html/data
# 新建数据文件夹
mkdir -p /home/username/domains/examplesite.com/public_html/data
# 测试运行
./memos --mode prod --port PORT --data /home/username/domains/examplesite.com/public_html/data
# 使用 pm2 管理
pm2 start ./memos --name memos -- --mode prod --port PORT --data /home/username/domains/examplesite.com/public_html/data

PORT需要替换成你刚才反代申请使用的端口(小的那个)。

为了避免别人下你的数据库,你需要弄一个阻止访问的.htaccess

<FilesMatch "\.db$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

memos更新:

pm2 stop memos
rm /home/username/domains/examplesite.com/public_html/memos
#按照上面的下载脚本重新下新版本
API_URL="https://api.github.com/repos/k0baya/memos-binary/releases/latest"
DOWNLOAD_URL=$(curl -s $API_URL | jq -r ".assets[] | select(.name == \"memos-freebsd-amd64.tar.gz\") | .browser_download_url")
curl -L $DOWNLOAD_URL -o memos-freebsd-amd64.tar.gz
tar -xzvf memos-freebsd-amd64.tar.gz && rm memos-freebsd-amd64.tar.gz && chmod +x memos
pm2 restart memos

上述内容中下载脚本来自:https://blog.rappit.site/2024/01/27/serv00_logs 感谢。

memos自定义

抄的。

自定义CSS:

body{font-family: "LXGW WenKai Screen", sans-serif !important;}
#root>div:nth-child(1) {
    background-image: url('https://randompic.chukogals.top/');
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
#root>div>div.justify-center {
    background-color: rgba(244 244 245 / 30%) !important;
}
#root main,
#root header,
#root aside {
    background-color: rgba(244 244 245 / 60%) !important;
}
.dark #root>div>div.justify-center {
    background-color: rgba(39 39 42 / 30%) !important;
}
.dark #root main,
.dark #root header,
.dark #root aside {
    background-color: rgba(39 39 42 / 60%) !important;
}
.dark .memo-content-wrapper>.expand-btn-container>div.absolute {
    background-color: rgba(39 39 42 / 30%) !important;
}
#root main>div:nth-child(1)>div:nth-child(1)>div:nth-child(2) {
    background-color: transparent !important;
}
#root>div:nth-child(1)>div:nth-child(2)>div:nth-child(1) {
    z-index: 20;
}
#root header {
    min-height: 100vh;
}
#root main>div {
    justify-content: space-between;
}

两个功能,一个是美化+自定义随机图背景;另外一个是替换字体(霞鹜文楷),下面的脚本也是替换字体。

自定义脚本:

function changeFont() {
  const link = document.createElement("link");
  link.rel = "stylesheet";
  link.type = "text/css";
  link.href = "https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.7.0/lxgwwenkaiscreen.css";
  document.head.append(link);
};
changeFont()

frp相关配置文件写法和使用

frp服务端

frps.toml写法:

bindPort = 7000
vhostHTTPPort = 7600
vhostHTTPSPort = 7601

然后建立系统服务并启动:vim /lib/systemd/system/frps.service

用i切换到插入,然后键入以下内容:

[Unit]
Description=frp service client
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.toml
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

然后按esc,再键入:wq保存退出。

然后启动服务三连:

systemctl daemon-reload
systemctl start frps
systemctl status frps

如果正常启动再用:systemctl enable frps

frp客户端

frpc.toml写法:

serverAddr = "8.8.8.8"
serverPort = 7000

[[test]]
name = "test-service"
type = "https"
custom_domains = ["domain.com"]

[[test.plugin]]
type = "https2http"
localAddr = "127.0.0.1:1234"
crtPath = "/root/frp/ssl/site1/site1.crt"
keyPath = "/root/frp/ssl/site1/site1.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"

建立系统服务并启动:vim /lib/systemd/system/frpc.service

[Unit]
Description=frp service client
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp/frpc -c /root/frp/frpc.toml
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

启动服务三连:

systemctl daemon-reload
systemctl start frpc
systemctl status frpc

正常启动再用:systemctl enable frpc

涉及修改某端配置文件的时候,用systemctl restart frpc/systemctl restart frps即可。

文章目录