手動申請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-tw/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

這裡是你留言評論的地方


請留言


3 + 4 =
【您可以使用 Ctrl+Enter 快速發送】
Copyright © 2007 - 2024 , Design by 美博園. 著作權所有. 若有著作權問題請留言通知本站管理員. 【回到頂部】