手动申请SSL证书自建代理:NaiveProxy + Caddy
【美博翻墙】trojan、v2fly(V2Ray)、NaiveProxy系列翻墙方法中,因封锁加剧,目前美博建议仅使用此方法建立的NaiveProxy。
几年前v2fly(V2Ray)、trojan和NaiveProxy因其优秀技巧将加密代理隐身于网络汪洋之中,给网友翻墙带来了方便,去年下半年因邪共嗅探到v2fly(V2Ray)和trojan的特征信号,而被大量阻断,这一波主要被封杀的代理基本上属于:一些ip段、tls与xtls伪装的代理;通过CDN掩盖的代理,也只有一部分存活,因为CDN使用的公共ip也有一部分被封了,使得443不能正常访问。唯一幸存的是 NaiveProxy,却因为证书申请失败也无法顺利搭建。美博也收到很多网友反馈要求更新NaiveProxy的搭建方法,过年期间进行了测试,有关情况记录如下。
可以说是,Caddy申请证书的方式和Let's Encrypt SSL 证书后来的严审,导致ssl证书申请不如以前顺利,美博本文更新的 NaiveProxy的搭建方法,是手动申请证书,测试多次 100% 成功,搭建NaiveProxy代理的方法。
caddy1及caddy2,在构建代理时仅仅只是作为前端网站掩护之用,caddy1已经够用,二者在构建代理方面并无差别,caddy2并无优势,caddy2也一样无法自动申请证书,所以,本文仍用之前的caddy,落使用Caddy2也只是略改配置文件即可,本文仍以caddy1搭建代理。
=====================
2019美博发布NaiveProxy自建代理时的介绍:
NaiveProxy是比较新的代理项目,与trojan类似也采用HTTPS协议,但有其独到特点,NaiveProxy可减轻流量指纹识别(特征)、主动探测和数据包长度分析的GFW审查带来的风险,就是说更难被墙检测和封锁。而且,设置比v2ray、trojan还要简略一些,目前网上NaiveProxy+Caddy的构建详细教程极少,美博测试后发布此方法与网友分享。
NaïveProxy简介【美博根据原文翻译】
官方项目主页:
GitHub - klzgrad/naiveproxy: Make a fortune quietly https://github.com/klzgrad/naiveproxy
注:官方项目使用的是这个词 NaïveProxy,i上面是二点,为了方便书写本文还是通用为 NaiveProxy。
据官方介绍:NaiveProxy 使用Chrome的网络堆栈来伪装流量,与自定义的网络堆栈(如:Shadowsocks、V2Ray,手工Golang堆栈)相比,具有更强的抗审查能力和更低的可检测性。复用Chrome堆栈使得NaïveProxy在(代理)性能和安全方面有最佳的表现。
NaïveProxy可缓解以下几种方式的流量攻击:
# 网站指纹识别/流量分类:通过HTTP/2中的流量复用来缓解。
# TLS参数指纹识别:因复用Chrome的网络堆栈而不能识别。
# 主动探测:被前端应用所克制,即将代理服务器隐藏在具有应用程序层路由的常用前端后面。(美博注:这应是指反向代理)
# 基于数据包长度的流量分析:通过长度充填来减免。
原理是:【浏览器 → Naïve(客户端)】→ GFW墙(审查员)→ 【前端 → Naïve(服务器)】 → 互联网
NaiveProxy 使用Chrome的网络堆栈,GFW墙(审查器)拦截的流量行为与Chrome和标准前端(例Caddy,HAProxy)之间的常规HTTP/2流量相同,没有特征信号。前端还会将未经身份验证的用户和活动探针重新路由到后端HTTP服务器,从而使得无法检测到代理的存在,即:探测Probe → 前端服务器 → index.html(网页)。(美博注:这个部份在v2ray、trojan也都有实现)
------------- 美博翻墙(allinfa.com)发布的几个目前最好的自建代理,可自行选择使用: 自建最强科学上网3+:trojan + Caddy(SSL证书自动续期) 自建最强科学上网2+:V2Ray + Caddy + Tls + WebSocket 自建最强科学上网5+:V2ray + Caddy + Tls + HTTP/2 自建最强科学上网4:NaiveProxy + Caddy 美博点评:V2Ray、trojan、NaiveProxy代理的异同及相关问题 美博认为这几个组合都是目前翻墙思路最好、最强的翻墙方法,可等同使用。 -------------
本方法代理构建的系统要求:Ubuntu ≧ 16.04 or Debian ≧ 9,建议使用 Debian 10及以上,不适用于 CentOS 。
本文有关的几个概念介绍:
NaiveProxy:以常见的https协议和Chrome的网络堆栈技术构建的绕过网络限制、审查、翻墙的工具。 Caddy:作为部署代理的前端web服务器。 HTTP/2(H2):是互联网HTTP网络协议的主要修订版。它源自Google最初开发的实验SPDY协议。 TLS:安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 反向代理:相对正向代理而言,真实的web服务器受到保护、对外不可见,外网只能看到反向代理,而反向代理服务器上并没有真实数据,从而保护web服务器的资源安全,并可加速网站访问速度等。
本教程按照实际制作过程进行描述:
为方便网友搭建,前面的步骤、命令、文件结构美博尽量做到与前文方法保持一致。
一、选择 VPS 服务器并安装系统
购买VPS并安装系统,请见教程:
自己搭建代理服务器:VPS的选择 自己搭建代理服务器:Vultr VPS 购买图文教程 自己搭建代理服务器:Vultr VPS 系统安装图文教程
请记住VPS安装系统后得到的: ip地址、 密码、 用户名(默认是root),后面会用到。
二、购买域名并设置与服务器ip关联
请参考教程:
自己搭建代理服务器:域名购买及设置与ip服务器关联
域名是为了建立网站(网页)用的,本方法实际建立一个网站(网页),将翻墙代理隐身其中,翻墙就像是实实在在的在浏览网站,消除代理的特征信号,提高翻墙代理安全性,这样的思路一直以前的翻墙软件难以实现的,NaiveProxy也实现了这个愿望,成为目前最好的翻墙方法系列之一。
三、用SSH工具连接VPS服务器
用SSH工具连接VPS服务器后,可以输入各种指令(命令)来安装系统、安装各种应用程序
在自家电脑上通过安全的SSH连接到远端的VPS服务器,就可以发出各种指令(命令)来安装系统、安装各种应用程序,包括建立代理的各种组件等等。在电脑上安装XShell软件来实现SSH连接非常方便,美博园推荐这个工具。
请参考:SSH连接软件-Xshell下载及使用教程
如果你使用的是Linux或macOS系统,本身就内置有SSH链接的终端模拟器,无需下载额外的软件。
=========== 几点说明 =========
# 本文方法以root用户来构建,建议不熟悉改变命令的网友不要自建用户,否则此法的很多命令将不可用。 # 新手注意:以下命令都是在英文半角输入完成,电脑的输入法不要处于中文输入状态,以免无意输入中文字符出错。 # 在执行下面各种命令时,首先都是要以root用户登录SSH连接VPS服务器,然后输入各种命令来执行。 # 下面的步骤,如果不明白其中命令的含义没有关系,请按照下面的全部顺序,有的步骤是不能移动顺序的,一步一步输入命令完成即可。
==============================
四、更新及优化系统
购买VPS时已经选择了安装系统,首先我们要输入指令更新系统:
4-1、更新系统
依次输入【每输入一行都要回车(按[Enter])】:
apt update
apt -y upgrade
注:以下每个命令输入后都要按[Enter] 回车执行,下面不再重复注明。
4-2、用nano编辑器打开sysctl.conf配置文件
nano是Linux的一款文本编辑器,如同windows系统中的记事本、写字板、EmEditor等文字编辑器一样的作用。
输入
nano /etc/sysctl.conf
编辑器打开后会有一个#绿色光标,这是可输入内容的位置,都是象这样子:
请注意一下使用nano编辑器和粘贴命令的规范操作,新手常常输入出错:
打开编辑器后,在#绿色光标处,先按enter回车,就会增加一空行;
再按“左方向键←” 让绿色光标上移到空行处;
然后,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
请记住:以下nano编辑操作都要如上所述。
4-3、调整系统控制参数
为代理服务器优化配置,将以下配置内容粘贴到上面命令打开的/etc/sysctl.conf文件的绿色光标处
# max open files fs.file-max = 51200 # max read buffer net.core.rmem_max = 67108864 # max write buffer net.core.wmem_max = 67108864 # default read buffer net.core.rmem_default = 65536 # default write buffer net.core.wmem_default = 65536 # max processor input queue net.core.netdev_max_backlog = 4096 # max backlog net.core.somaxconn = 4096 # resist SYN flood attacks net.ipv4.tcp_syncookies = 1 # reuse timewait sockets when safe net.ipv4.tcp_tw_reuse = 1 # turn off fast timewait sockets recycling net.ipv4.tcp_tw_recycle = 0 # short FIN timeout net.ipv4.tcp_fin_timeout = 30 # short keepalive time net.ipv4.tcp_keepalive_time = 1200 # outbound port range net.ipv4.ip_local_port_range = 10000 65000 # max SYN backlog net.ipv4.tcp_max_syn_backlog = 4096 # max timewait sockets held by system simultaneously net.ipv4.tcp_max_tw_buckets = 5000 # TCP receive buffer net.ipv4.tcp_rmem = 4096 87380 67108864 # TCP write buffer net.ipv4.tcp_wmem = 4096 65536 67108864 # turn on path MTU discovery net.ipv4.tcp_mtu_probing = 1 # for high-latency network net.core.default_qdisc=fq net.ipv4.tcp_congestion_control = bbr
4-4、退出nano编辑状态
注:下面凡是用到nano编辑命令的,退出nano编辑状态都是这个办法。
输入上述内容后,如何退出nano编辑状态
同时按 Ctrl + X 若询问你是否储存档案 (Save modified buffer? (Answering "No" will DISCARD changes.)) , 输入 y 再按 Enter(回车),就可以退出nano编辑状态了。
4-5、激活更改
输入:
sysctl -p
==========================
5、手动申请SSL证书
这里的关键步骤就是进行添加和验证 DNS-TXT记录,如下过程看起来繁琐,实际上就几步,第一次熟悉后很快就会完成。所以,下面的教程美博尽量写详细。
5-1 先安装cerbot
依次输入如下命令:
sudo apt-get install software-properties-common
sudo apt-get update
sudo apt-get install certbot
输入:
sudo certbot certonly --renew-by-default -d abc.aabbccdd.com --manual --preferred-challenges dns
1)会提示需要mail
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
输入mail后回车,mail可随意输入,真假都可以-
2)提示:是否同意协议
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel:
输入 A, 大小写字母都可以,回车
3)提示:是否同意分享mail
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
输入y,回车
4)提示:申请证书方式dns-01, 是否同意IP被公开及记录
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.
Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
输入y ,回车
5)接着,我们就得到了 该域名的 DNS TXT 记录 的资料:
Please deploy a DNS TXT record under the name
_acme-challenge.abc.aabbccdd.com with the following value:
gYLBVhLO0yAAALOUcCF89Kn-gZijwWQ2bO-QjL0ROws
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<b>Press Enter to Continue</b>
请注意,这里得到了验证你域名控制权的二个基本数据
name:_acme-challenge.abc.aabbccdd.com
该域名的TXT记录值:gYLBVhLO0yAAALOUcCF89Kn-gZijwWQ2bO-QjL0ROws
◆ ==========
6) 请注意:不要关闭此shell,这时暂停shell操作,进入域名设置
◆ ==========
域名设置 DNS TXT 记录
1、打开你申请域名的域名商网站,如前文举例在 Dynadot 购买的域名
1)用自己购买域名的帐号,登录 Dynadot后台 => 在DNS设置页面 → 选择下拉菜单中的“Dynadot DNS”设置:
有3个地方需要设置:
◆ 在“域名记录(必需)”部分,选择下拉菜单中的“TXT”
◆ 在子域名name处,输入:_acme-challenge.abc.aabbccdd.com
◆ 在“IP地址或目标主机”文本框输入上面得到的该域名的TXT记录值:gYLBVhLO0yPWMLOUcCF89Kn-gZijwWQ2bO-QjL0ROws
设置好后,点保存。
请注意,DNS设置后是否生效需要检查,如没有生效,后面的申请就不可能得到SSL证书
要等多久呢?这个很难说,也可能是即刻,也可能等数小时,这样看 DNS 服务端。也就是说,确认 _acme-challenge 可以连上了才回到上面停住的 certbot 按继续,一完成证书申请。
检查 DNS TXT 记录 是否生效,主要有这样二种方式,可以使用以下指令来确认已经正常解析:
方式1、在电脑端检测
打开电脑“开始” → “运行”,输入cmd后按回车,输入:
nslookup -qt=TXT _acme-challenge.abc.aabbccdd.com
或
nslookup -type=TXT _acme-challenge.abc.aabbccdd.com
会显示:
Server:
Address:
非权威应答
Non-authoritative answer:
_acme-challenge.abc.aabbccdd.com text =
"gYLBVhLO0yPWMLOUcCF89Kn-gZijwWQ2bO-QjL0ROws"
方式2、在shell端验证
你前面的shell画面,申请证书未完成,还停留在等待域名DNS TXT 记录生效的界面:Press Enter to Continue
请注意,不要动这个shell窗口,可在xshell中另开一个shell窗口,然后,在心窗口输入命令:
dig -t txt _acme-challenge.abc.aabbccdd.com
在接下来看到的画面中,可以看到一大推文本,其中有一句大致是如下样子:
;; ANSWER SECTION:
_acme-challenge.abc.aabbccdd.com. 600 IN TXT "gYLBVhLO0yPWMLOUcCF89Kn-gZijwWQ2bO-QjL0ROws"
或者
_acme-challenge.abc.aabbccdd.com text = "gYLBVhLO0yPWMLOUcCF89Kn-gZijwWQ2bO-QjL0ROws"
这就表明前面设置的 DNS TXT 记录已经生效,接下来就可以继续证书申请。
方式3:网站查询
注意:输入要查询的域名是:_acme-challenge.abc.aabbccdd.com
选项:选 TXT
◇ DNS Propagation Checker - Global DNS Testing Tool https://www.whatsmydns.net/ ◇ DNS在线查询工具 - Coding.Tools https://coding.tools/cn/nslookup ◇ DNS查询 https://myssl.com/dns_check.html ◇ SSL在线工具-DNS检测-DNS验证-CNAME记录检测-TXT记录检测-SSLeye官网 https://www.ssleye.com/ssltool/dns_check.html ◇ 域名解析查询(A/Txt/Cname/Mx/Srv/AAAA记录) https://www.infocode.com.cn/domain/?t=1674829482
◇ iTools - NSLOOKUP - DNS Record Lookup tool | The site of online tools and applications
https://itools.subhashbose.com/webtools/nslookup.html
--------------------------------
◆ 继续完成前面的证书申请
在上面验证解析成功后,
1)返回前面等待命令的 shell 界面:Press Enter to Continue
2)按下“回车”键,继续,正常情况下,这个回车命令一发出,很快就返回如下结果,表明letsencrypt对DNS记录验证成功,证书颁发成功。
---------
显示为:
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: np@aiface.cyou).
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/abc.aabbccdd.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/abc.aabbccdd.com/privkey.pem
Your certificate will expire on 2023-04-27. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
---------
说明:其中 - Congratulations! 表明申请证书成功 带证书链的公钥的保存路径: /etc/letsencrypt/live/abc.aabbccdd.com/fullchain.pem 对应的私钥key的保存路径: /etc/letsencrypt/live/abc.aabbccdd.com/privkey.pem 到期时间:2023-04-27,即有效期从申请时起算90天 expire on 2023-04-27
---------
可用如下命令查看证书:
1)进入证书目录
输入命令
cd /etc/letsencrypt/live/abc.aabbccdd.com
ls
(注:是字母l不是数字1)
可看到其中有几个文件
cert.pem chain.pem fullchain.pem privkey.pem README
说明: 有4个证书文件: cert.pem 服务端证书 chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书| fullchain.pem 包括了cert.pem和chain.pem的内容 | privkey.pem 证书的私钥
退回根目录
cd
回车
◆ ---------------
至此,手动申请证书成功
◆ ---------------
证书归位
证书申请下来后自动存储的位置上:/etc/letsencrypt/live/abc.aabbccdd.com
我们将其转移到证书目录下:/etc/ssl/caddy/
# 创建文件夹存储Caddy的配置文件
输入:
mkdir /etc/caddy
# 创建文件夹存储Caddy所管理的站点证书
输入:
mkdir /etc/ssl/caddy
# 允许root及www-data组访问相关文件及设置权限,允许Caddy写入站点证书文件夹
依次输入【每输入一行都要回车(按[Enter])】:
chown -R root:root /etc/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 770 /etc/ssl/caddy
注意:先创建目录及赋予权限,才能复制证书
接下来,输入如下命令来复制证书
cp /etc/letsencrypt/live/abc.aabbccdd.com/fullchain.pem /etc/ssl/caddy/fullchain.pem
cp /etc/letsencrypt/live/abc.aabbccdd.com/privkey.pem /etc/ssl/caddy/privkey.pem
◆ ==========
至此,手动申请证书步骤完成,接下来基本上是原来的步骤
◆ ==========
※ =========================== ※
以下步骤基本上同前,但有些改动的地方会注明。
五、安装 Caddy
5-1、先安装Web数据传输实用程序curl
输入:
apt install curl
若询问 Do you want to continue? [Y/n]
就按
y
继续安装直到完成。
--- 补充说明 开始 ---
有网友提醒:在谷歌云(GCP,Google Cloud Platform)上的debian系统没有自带wget。
如果你使用的是谷歌云,在这里安装caddy之前,在此步需要先安装wget
若你使用的其它VPS也遇到无法安装caddy,提示:wget: command not found
也可以试用下面方法:
输入:
sudo apt-get install yum
再输入:
yum -y install wget
--- 补充说明 结束 ---
5-2、安装Caddy个人使用版本
说明:因caddy停止下载v1版,本教程修正此替代安装方法,文件为官方原版,安装连接由美博产生,是安全可靠的。但此处安装链接可能不定时改变,敬请安装时,浏览本文当下的安装指令。
依次输入:
wget -P /usr/local/bin "https://fuyin513.cyou/c1/caddy.tar"
tar -xvf /usr/local/bin/caddy.tar -C /usr/local/bin
rm /usr/local/bin/caddy.tar
5-3、确定caddy文件的安装路径
输入:
whereis caddy
显示为:
root@vmi:~# whereis caddy
caddy: /usr/local/bin/caddy
5-4、赋予所有权和权限
#root拥有caddy文件防止其他账户修改
输入:
chown root:root /usr/local/bin/caddy
#修改权限为755,root可读写执行,其他账户不可写
输入:
chmod 755 /usr/local/bin/caddy
5-5、允许Caddy绑定到特权端口
#Caddy不会由root运行,使用setcap允许caddy作为用户进程绑定低号端口(服务器需要80和443)
输入:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
5-6、www-data的组和用户
检查名为www-data的组和用户是否已经存在
输入:
cat /etc/group | grep www-data
显示为:
root@vm:~# cat /etc/group | grep www-data
www-data:x:33:
输入:
cat /etc/passwd | grep www-data
显示为:
root@vm:~# cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
注意:你的显示结果与上面一样,就不需要下面输入;如果显示不一样、其组和用户不存在,则需要创建它们,如下操作:
输入:
groupadd -g 33 www-data
输入:
useradd -g www-data --no-user-group --home-dir /var/www --no-create-home --shell /usr/sbin/nologin --system --uid 33 www-data
5-7、为 Caddy 创建目录
#创建文件夹存储Caddy的配置文件
输入:
mkdir /etc/caddy
#创建文件夹存储Caddy所管理的站点证书
输入:
mkdir /etc/ssl/caddy
#允许root及www-data组访问相关文件,允许Caddy写入站点证书文件夹
依次输入【每输入一行都要回车(按[Enter])】:
chown -R root:root /etc/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 770 /etc/ssl/caddy
#创建记录文件
依次输入【每输入一行都要回车(按[Enter])】:
touch /var/log/caddy.log
chown root:www-data /var/log/caddy.log
chmod 770 /var/log/caddy.log
六、创建网站(网页)
6-1、为您的网站创建目录
#如果默认站点根目录不存在,创建以下文件夹
输入:
mkdir -p /var/www/html
#允许www-data组拥有站点文件夹
输入:
chown -R www-data:www-data /var/www
#创建空的Caddy配置文件
输入:
touch /etc/caddy/Caddyfile
6-2、向网站添加内容
基本上有二种方式,一种是建立一个简单的网页,另一种是建立一个实实在在的简易网站,可以装一些内容。当用域名访问时,是可以看到真实内容的。美博这里先介绍创建一个简单网页的方法。
6-2-1、创建网站方法
这里只是给朋友们提供一个思路去自己处理:
本方法的掩护网站建立的位置在 /var/www/html/ 目录中,其中网页启动文件是 index.html。
了解网站的网友知道,你自己可以在网上找到很多网站模板(主题)程序,到处都有网站模板(主题)演示,下载一个模板(主题)后,把其全部文件(只要里面的内容文件,不要模板(主题)名目录)复制到 /var/www/html/ 目录中,其中的 启动文件 index.html 一定要在 html/ 目录下,不要放在其它子目录中,就OK了。
如何将本地电脑的网站模板文件上传到指定的服务器 /var/www/html/ 目录中,请参考教程:
WinSCP:连接远端服务器的管理传输工具的使用教程
建议:不要变动以上的网站目录结构(路径),不然就可能需要更改目录路径和重新设置安装本文一些其它步骤。
6-2-2、创建一个网页
这个方法简单,可以广泛采用这个方法。
先特别说明:里面的中文字内容,请不要千篇一律的复制,可任意改为你自己编辑的独一无二的、普通的、无敏感词的内容,如:诗词、图片、外文等等,
6-2-2-1、首先创建一个作为掩护的真正的网页
输入:
touch /var/www/html/index.html
6-2-2-2、编辑网页文件
输入:
nano /var/www/html/index.html
将以下内容粘贴到 #绿色光标处
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1 style="font-family: sans-serif"> 这里是标题,这些中文字可改为你自己的任何语言的任何内容 </h1> 这里是网站网页正文内容, 这些中文字可改为你自己的任何语言的任何内容 添加多少内容都可以 代码部份不要改动,是一个简易网页的结构 网站网页正文内容-结束 </body> </html>
注:图片加入的格式为:<img src="你的图片链接" />,可以加入多张图片,图文并茂更好,图片插入的位置可以在你的正文内容(即上例所示的中文字部份)的“任意”位置。
总之,就是改为你自己知道的内容, 重申:其中不要有敏感字词。因是作掩护网页,可在“百度”等中文网站去尽量多选一些内容,其中不会有敏感字。
同上【4-2、调整系统控制参数】所述:nano编辑器和粘贴的的规范操作:
打开编辑器后,在#绿色光标处,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
然后,按老规矩退出nano编辑状态:
同时按 Ctrl + X
若询问你是否储存档案,按下 y
再按 Enter(回车),退出nano编辑状态。
七、设置SystemD服务
7-1、安装SystemD服务,配置 caddy.service
由于caddy准备抛弃caddy v1,所以后来的配置文件一改再改。我们自己来创建这个配置文件,比较稳妥实用,这个就不依赖于 caddy.service 的官方下载。
1)、创建 caddy.service 空文件
输入:
touch /etc/systemd/system/caddy.service
2)、在nano编辑器中打开caddy.service
输入:
nano /etc/systemd/system/caddy.service
3)、编辑caddy.service配置
将下面内容“原封不动”的复制出来,然后右键粘贴到nano编辑框中
[Unit] Description=Caddy HTTP/2 web server Documentation=https://caddyserver.com/docs After=network-online.target Wants=network-online.target systemd-networkd-wait-online.service ; Do not allow the process to be restarted in a tight loop. If the ; process fails to start, something critical needs to be fixed. StartLimitIntervalSec=14400 StartLimitBurst=10 [Service] Restart=on-abnormal ; User and group the process will run as. User=www-data Group=www-data ; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy ; Always set "-root" to something safe in case it gets forgotten in the Caddyfile. ExecStart=/usr/local/bin/caddy -quic -log stdout -log-timestamps=false -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp ExecReload=/bin/kill -USR1 $MAINPID ; Use graceful shutdown with a reasonable timeout KillMode=mixed KillSignal=SIGQUIT TimeoutStopSec=5s ; Limit the number of file descriptors; see `man systemd.exec` for more limit settings. LimitNOFILE=1048576 ; Unmodified caddy is not expected to use more than that. LimitNPROC=512 ; Use private /tmp and /var/tmp, which are discarded after caddy stops. PrivateTmp=true ; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.) PrivateDevices=false ; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys. ProtectHome=true ; Make /usr, /boot, /etc and possibly some more folders read-only. ProtectSystem=full ; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there. ; This merely retains r/w access rights, it does not add any new. Must still be writable on the host! ReadWritePaths=/etc/ssl/caddy ReadWriteDirectories=/etc/ssl/caddy ; The following additional security directives only work with systemd v229 or later. ; They further restrict privileges that can be gained by caddy. Uncomment if you like. ; Note that you may have to add capabilities required by any plugins in use. ;CapabilityBoundingSet=CAP_NET_BIND_SERVICE ;AmbientCapabilities=CAP_NET_BIND_SERVICE ;NoNewPrivileges=true [Install] WantedBy=multi-user.target
说明:
此处的配置文件与以前略有修改,主要是加入了 -quic,使caddy开启QUIC协议
然后,按老规矩退出nano编辑状态:
同时按 Ctrl + X
若询问你是否储存档案,按下 y
再按 Enter(回车),退出nano编辑状态。
7-2、设置caddy.service权限
输入:
chown root:root /etc/systemd/system/caddy.service
输入:
chmod 644 /etc/systemd/system/caddy.service
7-3、重载systemd使其检测到新安装的Caddy服务
输入:
systemctl daemon-reload
八、配置 Caddy
8-0、产生密码
因后面配置中要用到密码,你可以自己随意写一串数字、字母组合的密码,补充:建议不要用符号,特别是#、@、:等这些符号不要用;
可以通过执行下面命令随机产生一组密码:
输入:
head /dev/urandom | tr -dc a-z0-9 | head -c 16 ; echo ''
得到的密码像这样:
cal32u233ndcfu0m
不用记,复杂一些就好,复制下来,在下面配置中会用到,并且以下配置中要用到密码的地方都要与这个完全相同。
8-1、加入Caddy配置文件
输入:
nano /etc/caddy/Caddyfile
请注意,先要修改下面紫红色标记的“域名”、“信箱”为你自己的资料(下面有详细说明)
然后再将内容粘贴到 #绿色光标处
这里举例用一个二级域名 abc.aabbccdd.com
abc.aabbccdd.com:443 { log stdout errors stderr root /var/www/html tls /etc/ssl/caddy/fullchain.pem /etc/ssl/caddy/privkey.pem forwardproxy { basicauth 自设的用户名 自设的密码 hide_ip hide_via probe_resistance upstream https://127.0.0.1:8080 } }
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
说明: 1)abc.aabbccdd.com:要改为你自己的域名,若是这样的二级域名,其正确解析请参考前文【自己搭建代理服务器:域名购买及设置与ip服务器关联】; 2)自设的用户名:随机填写你自己的,数字字母组合随意; 3)自设的密码:这里就要用到上一步随机产生的密码; 即:上面那句随机产生密码的命令: basicauth 自设的用户名 自设的密码 实际写出来就是这样子: basicauth myuserid cal32u233ndcfu0m 注意格式,中间都有一个半角英文空格 4)这里与以前的配置文件有比较大的改变,不需要caddy去申请证书,而是直接调用已经申请到的证书 即:tls /etc/ssl/caddy/fullchain.pem /etc/ssl/caddy/privkey.pem
8-2、赋予Caddy配置文件权限
#给它适当的所有权和权限:
输入:
chown root:root /etc/caddy/Caddyfile
输入:
chmod 644 /etc/caddy/Caddyfile
8-3、启动Caddy
#启动Caddy
输入:
systemctl start caddy
8-4、检查Caddy启动状态
要检查Caddy是否正在运行并且正在侦听端口80和443,可输入:
systemctl status caddy
你应该看到这样子的结果,如看到如下绿色字 active (running),表明 caddy已经启动:
8-5、检查SSL证书是否生效及效果
上面Caddy配置是否生效,SSL证书是否已经生成,到这里要进行检查,这在NaiveProxy构建时是需要做的。因为SSL证书没有生成,后面是不能成功搭建NaiveProxy代理的。而且,上面这一步的Caddyfile配置是专为你的域名生成证书,在后面会删除这个设置,所以,这一步一定要检查SSL证书已经生成才可以往下面的步骤走。
检查很简单:
1)、在浏览器中用 https://你的域名
如果已经可以访问你的网站,显示你自己建的网站内容,就表明SSL已经安装成功了。
因有时SSL证书申请要等几分钟,如果没有马上生效,可稍等一下。
2)、如果要进一步看看SSL效果,可以在 SSL Labs网站查看
https://www.ssllabs.com/ssltest/
在其中输入自己的域名,可以检测一下https配置评分。
8-6、自启动Caddy
若上一步启动无问题则可启用开机自启动Caddy
输入:
systemctl enable caddy
会显示:
Created symlink /etc/systemd/system/multi-user.target.wants/caddy.service → /etc/systemd/system/caddy.service.
8-7、若Caddy没有正常启动的记录查看
注意:如果Caddy无法正常启动,则可以查看日志数据以帮助找出问题。如果已经启动,不需要此步检查。
输入:
journalctl --boot -u caddy.service
8-8、修改 Caddy 配置会用到的相关命令 -- 此节只是说明
注:此节内容不需要接上下步骤操作,只是修改配置文件时才需要
若caddy没有正常启动,检查到前面的步骤中某一步骤有输入错误等,要修改 Caddyfile、caddy.service等等文件,那么就会用到的一些命令:
修改前,
一般要先停止Caddy服务:
caddy -service stop
修改完成后:
重载systemd使其检测到新安装的Caddy服务
systemctl daemon-reload
启动Caddy服务:
caddy -service start
或
重启Caddy服务:
caddy -service restart
查看启动状态
systemctl status caddy
若不需要、或安装错误Caddy服务,可卸载再重新安装
卸载Caddy服务:
caddy -service uninstall
九、安装 NaiveProxy
9-1、先安装组件
输入:
apt install libnss3
若有询问:
Do you want to continue? [Y/n]
输入: y
继续安装。
9-2、安装 NaiveProxy
这个需要先到NaiveProxy官网(Github 页面)去查看最新版本,文件要根据你的系统是什么来选择,修改下面命令的版本号才能安装到最新版:
在浏览器中,打开其官方页面:
https://github.com/klzgrad/naiveproxy/releases
可见有版本号,如目前最新版是 v81.0.4044.92-1,我们选择 这个 naiveproxy-v81.0.4044.92-1-linux-x64.tar.xz
你可以在官网这个文件上点右键复制其下载链接,也可以直接将版本号复制出来替换下面命令中的版本号,即:
特别说明:我们这里举例的naiveproxy版本号 v81.0.4044.92-1,如何你使用的是自己选择的版本号,请记得在下面几个步骤里要修改为相应的版本号
先执行如下命令:
wget https://github.com/klzgrad/naiveproxy/releases/download/v81.0.4044.92-1/naiveproxy-v81.0.4044.92-1-linux-x64.tar.xz (注:此步要修改为你自己的版本号)
然后输入命令解压缩:
输入:
apt install xz-utils
tar -xf naiveproxy-v81.0.4044.92-1-linux-x64.tar.xz (注:此步要修改为你自己的版本号)
9-3、配置SystemD服务文件
# 转到解压缩的文件目录
输入:
cd naiveproxy-v81.0.4044.92-1-linux-x64 (注:此步要修改为你自己的版本号)
# 复制naive二进制命令
输入:
cp naive /usr/local/bin
# 创建SystemD服务文件
用编辑器打开,输入:
nano /etc/systemd/system/naive.service
将下面内容,不需要修改,直接复制进去:
[Unit] Description=NaiveProxy Server Service After=network-online.target [Service] Type=simple User=nobody CapabilityBoundingSet=CAP_NET_BIND_SERVICE ExecStart=/usr/local/bin/naive /etc/naive/config.json [Install] WantedBy=multi-user.target
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
# 退出目录
输入:
cd
# 重新加载SystemD配置
输入:
systemctl daemon-reload
十一、NaiveProxy服务器端配置
(一)服务器配置文件修改
# 产生配置空文件目录
输入:
mkdir /etc/naive
# 编辑器打开配置文件config.json
nano /etc/naive/config.json
将下面的内容复制、粘贴到绿色光标处,通用的,不需要修改:
{ "listen": "https://127.0.0.1:8080", "padding": true }
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
说明:这里可以看出,NaiveProxy的配置文件比v2ray和trojan要简单许多。这个意思是:在NaiveProxy服务器上,配置侦听端口为8080,这是Caddy将传递经过身份验证的数据流量的位置。
(四)启动 NaiveProxy
# 开启自启动
输入:
systemctl enable naive
显示为:
root@vm:~# systemctl enable naive
Created symlink /etc/systemd/system/multi-user.target.wants/naive.service → /etc/systemd/system/naive.service.
# 启动 NaiveProxy
输入:
systemctl start naive
# 查看启动是否成功
输入:
systemctl status naive
如图,若显示为绿色的“active”表示NaiveProxy已经成功启动
# 若不能启动,请查看错误日志
(已经正常启动不需此输入)
输入:
journalctl -fu naive
十二、防火墙简易设置
为了增强安全性,下面介绍防火墙的简易设置,请接着上面的步骤继续完成下面的设置。
请根据你的系统是 Ubuntu 或 debian 来选择设置,二者防火墙设置方式不同。
12-1、Debian 系统 开启防火墙及端口设置
如果你使用的是 Debian 系统,请按照下面的设置,不适用于Ubuntu系统和Centos系统
1)安装UFW
Debian默认不安装UFW,使用apt安装:
apt install ufw
2)设置默认策略
要设置UFW使用的默认值,使用以下命令:
ufw default deny incoming
再输入
ufw default allow outgoing
3)允许SSH连接
允许端口22上的所有连接
ufw allow 22
注:如果有的VPS服务器的SSH使用其他端口,则必须指定相应的端口。例如,除了常用的22外,也有些使用2222 ,则可以使用此命令允许该端口上的SSH连接:
ufw allow 2222
4)启用UFW
在允许了SSH后,才启用UFW,不然SSH连接会断开
要启用UFW,使用以下命令:
ufw enable
会询问是否安装,
root@v3:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
请输入 y
再 Enter(回车)
完成安装会显示:
Firewall is active and enabled on system startup
5)打开常用端口
翻墙会用到 端口80、443
依次输入【每输入一行都要回车(按[Enter])】:
ufw allow 80
ufw allow 443
再输入命令启用防火墙
ufw enable
会提问:
root@vu:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?</pre>
问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,
<pre>按下 y
Enter(回车)
至此,Debian 系统 防火墙设置完成
12-2、Ubuntu 系统 开启防火墙及端口设置
如果你使用的是 Ubuntu 系统,请按照下面的设置,不适用于Debian系统和Centos系统
因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443
22 / TCP(入站/出站):标准SSH端口 80 / TCP(入站/出站):标准HTTP端口 443 / TCP(入站/出站):标准HTTPS端口
用下面的命令打开这几个 port
依次输入【每输入一行都要回车(按[Enter])】以下指令:
ufw allow 22
ufw allow 80
ufw allow 443
再输入命令启用防火墙
ufw enable
会提问:
root@vu:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?</pre>
问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,
<pre>按下 y
回车
至此,Ubuntu 系统 防火墙设置完成
==============
1、退出SSH
退出 SSH 连接
输入:
exit
或者 直接关闭 X-shell
2、关于修改NaiveProxy服务器配置
上述设置一切都完成后,一般不需要修改就可以稳定运行。
如果你自己想修改配置,如域名、密码等等,都是可以修改的,但是修改完成后,记得重启NaiveProxy服务端即可,同时客户端的资料也要同步修改。
修改前:
一般在修改前也是停止先服务
停止NaiveProxy服务
输入:
systemctl stop naive
修改完成后:
修改配置后也需重新加载配置文件
systemctl daemon-reload
启动NaiveProxy服务
输入:
systemctl start naive
-
或
重启NaiveProxy服务
输入:
systemctl restart naive
==============
至此,所有服务器端设置全部完成,下面进行客户端和浏览器设置
十三、NaiveProxy客户端
NaiveProxy客户端,唯一不方便的是就是客户端比较少,特别是苹果的客户端。
安卓(Android) NaiveProxy客户端
在服务器端搭建好NaiveProxy代理服务器后,我们还需在自己的电脑即客户端上设置好才能使用。
13-1、官方客户端 naive.exe
NaiveProxy官方也提供了客户端软件,只有dos黑框,里面会及时可显示数据连接状况。
打开其官方页面:
https://github.com/klzgrad/naiveproxy/releases
可见最新版,根据自己的系统来选择客户端,比如:win 系统,选择naiveproxy-v109.0.5414.74-2-win-x64.zip
下载后解压,得到文件夹:
其中文件包括:
config.json : 这个就是客户端配置文件,
naive.exe : 这是NaiveProxy客户端执行文件,
客户端配置文件
这个客户端配置文件需要自己编辑,用文本编辑器打开config.json
里面是这样:
{ "listen": "socks://127.0.0.1:1080", "proxy": "https://user:pass@domain.example", "log": "" }
注:上面配置里user、pass、domain.example要修改为你自己的,并与【8-1、加入Caddy配置文件】中设置内容一致
user:是你 “自设的用户名”
pass:是你 “自设的密码”
domain.example:是你使用的域名,注意格式,不要少了域名前面那个 @
修改后就会像这样子:
{ "listen": "socks://127.0.0.1:1080", "proxy": "https://myuserid:cal32u233ndcfu0m@abc.aabbccdd.com", "padding": true, "log": "" }
修改后,记得保存。
注: "log": 这个参数,若加上,会在软件中看到数据联网情况,若不加就只有一个黑框,里面没有内容。 "padding": true, 这个是必须的,增强安全性,它添加长度充填来混淆流量。
请注意:
1)使用v2rayN客户端来加载naive内核,需要将配置文件的log行删除,否则会断流
2)配置文件 config.json中,默认使用HTTP2(TCP)协议连接服务器,可改为 quic 来使用QUIC(UDP)协议,这更好,但某些地区ISP可能会严格控制 QoS UDP 流量
即:将
https://user:pass@domain.example
改为
quic://user:pass@example.com
启动NaiveProxy
很简单,双击naive.exe,就可以启动了。在使用代理期间,要一直保持 naive.exe 启动状态。
启动后象这样:
关闭NaiveProxy
启动NaiveProxy后,显示上图的窗口,若你不使用NaiveProxy时,请按最右上角的 X(关闭)即可关闭代理。
浏览器设置与代理上网
NaiveProxy正常启动后,需在浏览器设置对应的代理,就可以在浏览器中通过NaiveProxy代理上网了。也可以作为tor的前置代理,就很安全了。
浏览器代理参数设置
在浏览器中设置NaiveProxy代理为: socks5 127.0.0.1:1080
本系列教程中,v2ray、trojan、NaiveProxy的代理都是默认 socks5 127.0.0.1:1080
基本代理设置方式,如图所示:
在使用firefox、chrome浏览器时,推荐使用SwitchyOmega扩展,美博的Firefox纯净绿色版、chrome纯净版,都已在扩展 SwitchyOmega中都有设置了这个端口的v2ray、trojan、NaiveProxy代理,如果是使用美博的浏览器,就不用另外设置了,请参考:
火狐浏览器_Firefox_美博纯净中文绿色版 Google Chrome浏览器_美博园纯净绿色版 选其中的最新版本使用。
其他浏览器设置NaiveProxy代理,请参考上图设置代理。
3)、firefox57版之前的旧版firefox,可以使用以下介绍的方法设置firefox浏览器代理, 但是, 切记:在新版57版以后的firefox中,下面的代理扩展gproxy已经不起作用,请特别注意它可以设置代理却不起作用,这很糟糕!
请参考:firefox57版(含)之后都不能使用下面的:
GProxy:火狐(firefox)浏览器简便的代理调度扩展(v2.1) - 美博园 GProxy Plus 3.0和 3.1 版:Firefox浏览器简便的代理调度扩展(20180523) - 美博园
14-2、上网,查看ip
代理是不是设置好了?代理起作用没有,一般在“每次”使用时都应该自己先验证确认一下。
方法很多,如:
美博园主页右侧栏有上网ip显示 IP地理信息查询 - 美博园 IP详细参数及代理匿名度检测 - 美博园 点进去就可以看到自己当前上网的代理ip地址及相关参数。 当然,你也可以通过其他方法检验。 其他方法请参考:如何查看自己上网的ip地址? - 美博园
***
=== 自建最强代理 v2ray、trojan、NaiveProxy 系列文章参考 ===
自建最强科学上网3+:trojan + Caddy(SSL证书自动续期) - 美博园 关于v2fly(V2Ray)更新版本的提醒 - 美博园 自建最强科学上网5+:V2ray + Caddy + Tls + HTTP/2 自建最强科学上网2+:V2Ray + Caddy + Tls + WebSocket 自建最强科学上网4:NaiveProxy + Caddy “trojan+Caddy”SSL证书自动续期的Caddyfile配置解决方案 - 美博园 美博点评:V2Ray、trojan、NaiveProxy代理的异同及相关问题 - 美博园 自己搭建代理服务器:VPS的选择 - 美博园 自己搭建代理服务器:Vultr VPS 购买图文教程 - 美博园 自己搭建代理服务器:Vultr VPS 系统安装图文教程 - 美博园 自己搭建代理服务器:检测ip是否被墙及更换ip - 美博园 自己搭建代理服务器:域名购买及设置与ip服务器关联 - 美博园 SSH连接软件-Xshell下载及使用教程 - 美博园 WinSCP:连接远端服务器的管理传输工具的使用教程 - 美博园 其它参考: v2ray客户端代理上网 - Windows、Android、Mac、ios - 美博园 Let's Encrypt 证书颁发的速率及次数限制 - 美博园 Let's Encrypt SSL 证书安装不了的若干问题解决 - 美博园 如何开启Google TCP BBR 加速 - 美博园 V2ray自建代理遇到的一些问题及解决 - 美博园
原文标题:手动申请SSL证书自建代理:NaiveProxy + Caddy - 美博园
美博园文章均为“原创 - 首发”,请尊重辛劳撰写,转载请以上面完整链接注明来源!
软件版权归原作者!个别转载文,本站会注明为转载。
网 友 留 言
14条评论 in “手动申请SSL证书自建代理:NaiveProxy + Caddy”这里是你留言评论的地方
出现这个错误是什么原因?证书已经正常,要卸载caddy再安装一次吗?
[ERROR 502 ] dial tcp 127.0.0.1:8080: connect: connection refused
certbot certonly --renew-by-default -d *.111111.com --manual --preferred-challenges dns
这个命令是通配符证书还是单个网站的证书?
还有:现在VLESS+Vision+REALITY流行,有大佬编译的caddy2可以同时兼容VLESS+Vision+REALITY和NaiveProxy(https://github.com/lxhao61/integrated-examples),大佬是不是可以出一个教程
必须感谢一波 翻了好多教程 YouTube 上脚本满天飞 网页上像大海
像博主这样专业 详细的好多年才发现一个 博主在很多步骤步骤前都会把
前置条件声明 避免读者踩坑 步骤细分的相当详细 真的少见
而且只要严格遵循博主的步骤极少出错 可信度极高
这样详细的教程 又是实践 又是码字 排版 .....也不知道博主默默付出了多少
只有换位思考才能体会 真心感谢 !!!
@James
谢谢鼓励
Vultr也接收中国用户的付款,但是Vultr要求支付信息中填写国家和具体地址。如果在购买Vultr主机、填写支付信息时选了China,请问Vultr会不会把服务器日志交给中共?
步入量子时代,建议用 github.com/oilel/pqt ,理由如下:这款软件采用Kyber1024,Kyber基于Lattice。量子计算机用Shor算法和Grover算法都无法求解Lattice困难问题。所以这款 pqt 能提供针对量子计算机的强加密。
hhhhh你好
@ssss 你好
另外还有一个问题想要咨询一下,请问这样申请证书后,会不会还需要每三个月更新一下证书。如果是需要的话,还想请作者不辞劳苦,再说明一下更新的方法。
再次感谢作者的工作。
@hhcd hhhh你好
首先感谢作者的教程,这是目前我能找到最详细的安装说明了。
先看了一遍,然后关于域名设置有两个地方不太明白;(用的Dynadot)
一、[在“域名记录(必需)”部分,选择下拉菜单中的“TXT”],意思是不是在记录类型选择TXT?后面的“IP地址/目标主机”写TXT记录值?
二、[在子域名name处,输入:_acme-challenge.abc.aabbccdd.com],这个是否能再详细一些呢,有些不知所措,不知具体的操作方法;
三、作者是否方便留个Dynadot的DNS设置方法的截图。
再次感谢作者的辛苦付出。
@hhcd 在DNS服务商那里添加一条解析记录,类型为TXT,前面的Name填_ACME-CHALLENGE,target填手动申请时得到的那一长串代码即可,提交后要等几分钟才生效。
另外按照教程做在启动caddy时会报错,多次折腾发现是需要设置证书私钥读取权限,执行这条指令成功启动caddy
sudo chmod 644 /etc/ssl/caddy/privkey.pem
@aaa 感谢您的回答,不好意思,我是一个新手。
我用的是Dynadot,在选择“Dynadot DNS”之后,然后在“域名记录(必填)”的内容中,发现只有“记录类型”和“IP地址/目标主机”这两列,记录类型我选择TXT后,那么“IP地址/目标主机”该怎么写呢?
方便的话麻烦看下我做的设置,有什么地方是不对的吗?
https://cdnjson.com/images/2023/04/07/407.jpg
@hhcd IP地址就填你输入手动申请命令后窗口中显示中的一长串字符,类似教程中下面的“gYLBVhLO0yAAALOUcCF89Kn-gZijwWQ2bO-QjL0ROws”
--------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.abc.aabbccdd.com with the following value:
gYLBVhLO0yAAALOUcCF89Kn-gZijwWQ2bO-QjL0ROws
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue