「trojan+Caddy」SSL證書自動續期的Caddyfile配置解決方案
【美博翻牆2021.3.8】美博已經發布了新版的【自建最強科學上網3+:trojan + Caddy(SSL證書自動續期)】,原因是 trojan + Caddy原方法SSL證書三個月到期後不能自動續期,導致trojan不能使用,需要手動重新過一遍原教程中申請證書的步驟。現在美博通過修改Caddyfile配置也能解決SSL自動續期的問題,本文是一些思路討論,也請網友完善。
問題的起因
為什麼trojan+Caddy會出現SSL證書三個月到期不能自動續期的問題,Caddy不是可以自動續期的嗎?當初寫trojan+Caddy這個教程時,對Caddy理解有限,以為申請證書後,Caddy內部已經可以自動完成續期,結果不是。
原因在於,trojan使用443連線埠,Caddy也使用443和80連線埠來申請證書和反代前端網頁。所以,以前我們與網上其它很多方法的處理都是,Caddy申請完SSL證書後,就轉為使用80連線埠,但是,問題就來了:Caddy在續期SSL證書時仍然要用到443連線埠,但這個已經為trojan佔用。
目前採用的acme腳本續期辦法
在使用一段時間trojan後,有些網友開始反饋SSL證書不能自動續期。
網上陸續有一些補救辦法,基本上是採用另外安裝 acme.sh 腳本自動續期ssl證書,這是最大宗,其次使用 Let's Encrypt SSL 證書官方推薦的 Certbot來續期,本質上還是acme。
這二種方法可行,續期沒有問題,但是,美博在考量一個問題:畢竟二者都是附加另外安裝,相當於原本的Caddy+trojan,變成了Caddy+trojan+acme,當然沒有單純的Caddy+trojan好。
Caddy在trojan代理中所起作用一是前端網站反代,一個就是SSL申請和續期,如果Caddy失去了本身的這一大功能,要另外的acme來彌補,顯然不完美。
從Caddyfile配置文件達成SSL自動續期當然是最好
美博最近有時間,遍歷了網上有關Caddy+trojan不能自動續期的大量文獻,基本上都是安裝acme的方法來續期,也基本上沒有一個從配置文件解決問題的完整代碼。但是有2、3篇文章討論到了如何修改配置的討論,但是沒有實例和完整代碼,只是一些討論看法,但是也很受啟發。
後來逐漸思路就清晰了,應該是通過修改Caddyfile配置文件可以達成。
美博的思路是:
其實這裡的焦點問題,還是trojan和Caddy的443連線埠衝突問題。
那麼,我們丟掉以前Caddy使用443連線埠申請證書和續期的默認常規方法,想法用其他連線埠,這次更新教程中使用8080,讓Caddy用這個專一連線埠來做SSL證書的事情,仍然讓caddy轉為監聽80連線埠,讓trojan使用443連線埠來處理各種流量來源,再通過轉向將網頁流量轉到ssl。還好,神靈加持,第三次測試Caddy已經能正常使用,但trojan部份還有點問題,到第5次測試,就完美解決問題,一切OK,完整的代碼如下:
https://sitedomain:8080 { #caddy的htpps改用8080,專門處理證書,默認的https連線埠443留給trojan tls xxxxxx@mail.com #你申請證書的信箱 root /var/www/html gzip timeouts none log /var/log/caddy.log } https://sitedomain { #Caddy將同時在連線埠80和專門的8080上偵聽, root /var/www/html gzip log /var/log/caddy.log } :80 { redir https://sitedomain #到連線埠80的流量重定向到連線埠443 }
註:sitedomain 為你的網站網域,8080可以改為任意未佔用的連線埠
餘下一個問題,就是多了一個8080連線埠,為了安全起見,這個8080並不需要外界訪問,所以,最後在教程的UFW防火牆設置中增加一條規則,只允許8080作為內部發出請求,不許外部訪問。
ufw allow from 127.0.0.1 to any port 8080
結語:
本討論僅是美博提出的解決辦法,完整教程【自建最強科學上網3+:trojan + Caddy(SSL證書自動續期)】也已經發布。
因為本方法的完整代碼和實例為美博研究首創,是否完美,是否有考量疏漏的地方,證書要三個月後才能知道是否真的有效,所以,請熱心網友也來幫忙測試是否會自動續期,當然建立trojan代理一樣是成功的。
同時,有了這個思路,V2Ray+trojan,V2Ray+NaiveProxy的共存,應該也容易解決,等有時間測試後再寫新教程。
畢竟個人思路有限,若有問題或更好的解決辦法,歡迎網友留言指正。
***
=== 自建最強代理 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自建代理遇到的一些問題及解決 - 美博園
原文標題:「trojan+Caddy」SSL證書自動續期的Caddyfile配置解決方案 - 美博園
美博園文章均為「原創 - 首發」,請尊重辛勞撰寫,轉載請以上面完整鏈接註明來源!
軟體著作權歸原作者!個別轉載文,本站會註明為轉載。
這裡是你留言評論的地方