手动申请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

编辑器打开后会有一个#绿色光标,这是可输入内容的位置,都是象这样子:
手动申请SSL证书自建代理:NaiveProxy + Caddy

请注意一下使用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已经启动:
手动申请SSL证书自建代理:NaiveProxy + 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
你可以在官网这个文件上点右键复制其下载链接,也可以直接将版本号复制出来替换下面命令中的版本号,即:

手动申请SSL证书自建代理:NaiveProxy + Caddy

特别说明:我们这里举例的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已经成功启动

手动申请SSL证书自建代理:NaiveProxy + Caddy

# 若不能启动,请查看错误日志

(已经正常启动不需此输入)
输入:

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

手动申请SSL证书自建代理:NaiveProxy + Caddy

下载后解压,得到文件夹:

手动申请SSL证书自建代理:NaiveProxy + Caddy

其中文件包括:
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 启动状态。

启动后象这样:

手动申请SSL证书自建代理:NaiveProxy + Caddy

关闭NaiveProxy

启动NaiveProxy后,显示上图的窗口,若你不使用NaiveProxy时,请按最右上角的 X(关闭)即可关闭代理。

浏览器设置与代理上网

NaiveProxy正常启动后,需在浏览器设置对应的代理,就可以在浏览器中通过NaiveProxy代理上网了。也可以作为tor的前置代理,就很安全了。

浏览器代理参数设置

在浏览器中设置NaiveProxy代理为: socks5 127.0.0.1:1080

本系列教程中,v2ray、trojan、NaiveProxy的代理都是默认 socks5 127.0.0.1:1080

基本代理设置方式,如图所示:

手动申请SSL证书自建代理:NaiveProxy + Caddy

在使用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自建代理遇到的一些问题及解决 - 美博园
原文链接:https://allinfa.com/zh-cn/manual-ssl-certificate-naiveproxy-caddy.html
原文标题:手动申请SSL证书自建代理:NaiveProxy + Caddy - 美博园
美博园文章均为“原创 - 首发”,请尊重辛劳撰写,转载请以上面完整链接注明来源!
软件版权归原作者!个别转载文,本站会注明为转载。

网 友 留 言

14条评论 in “手动申请SSL证书自建代理:NaiveProxy + Caddy”
  1. guest

    出现这个错误是什么原因?证书已经正常,要卸载caddy再安装一次吗?
    [ERROR 502 ] dial tcp 127.0.0.1:8080: connect: connection refused

  2. wuceyi

    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),大佬是不是可以出一个教程

  3. James

    必须感谢一波 翻了好多教程 YouTube 上脚本满天飞 网页上像大海
    像博主这样专业 详细的好多年才发现一个 博主在很多步骤步骤前都会把
    前置条件声明 避免读者踩坑 步骤细分的相当详细 真的少见
    而且只要严格遵循博主的步骤极少出错 可信度极高
    这样详细的教程 又是实践 又是码字 排版 .....也不知道博主默默付出了多少
    只有换位思考才能体会 真心感谢 !!!

  4. www

    Vultr也接收中国用户的付款,但是Vultr要求支付信息中填写国家和具体地址。如果在购买Vultr主机、填写支付信息时选了China,请问Vultr会不会把服务器日志交给中共?

  5. oilel

    步入量子时代,建议用 github.com/oilel/pqt ,理由如下:这款软件采用Kyber1024,Kyber基于Lattice。量子计算机用Shor算法和Grover算法都无法求解Lattice困难问题。所以这款 pqt 能提供针对量子计算机的强加密。

  6. ssss

    hhhhh你好

  7. hhcd

    另外还有一个问题想要咨询一下,请问这样申请证书后,会不会还需要每三个月更新一下证书。如果是需要的话,还想请作者不辞劳苦,再说明一下更新的方法。
    再次感谢作者的工作。

  8. hhcd

    首先感谢作者的教程,这是目前我能找到最详细的安装说明了。
    先看了一遍,然后关于域名设置有两个地方不太明白;(用的Dynadot)
    一、[在“域名记录(必需)”部分,选择下拉菜单中的“TXT”],意思是不是在记录类型选择TXT?后面的“IP地址/目标主机”写TXT记录值?
    二、[在子域名name处,输入:_acme-challenge.abc.aabbccdd.com],这个是否能再详细一些呢,有些不知所措,不知具体的操作方法;
    三、作者是否方便留个Dynadot的DNS设置方法的截图。
    再次感谢作者的辛苦付出。

    • aaa

      @hhcd 在DNS服务商那里添加一条解析记录,类型为TXT,前面的Name填_ACME-CHALLENGE,target填手动申请时得到的那一长串代码即可,提交后要等几分钟才生效。
      另外按照教程做在启动caddy时会报错,多次折腾发现是需要设置证书私钥读取权限,执行这条指令成功启动caddy
      sudo chmod 644 /etc/ssl/caddy/privkey.pem

      • hhcd

        @aaa 感谢您的回答,不好意思,我是一个新手。
        我用的是Dynadot,在选择“Dynadot DNS”之后,然后在“域名记录(必填)”的内容中,发现只有“记录类型”和“IP地址/目标主机”这两列,记录类型我选择TXT后,那么“IP地址/目标主机”该怎么写呢?
        方便的话麻烦看下我做的设置,有什么地方是不对的吗?

        https://cdnjson.com/images/2023/04/07/407.jpg

        • aaa

          @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

这里是你留言评论的地方


请留言


7 + 3 =
【您可以使用 Ctrl+Enter 快速发送】
Copyright © 2007 - 2024 , Design by 美博园. 版权所有. 若有版权问题请留言通知本站管理员. 【回到顶部】