
Agate虛擬主機配置多域名站點部署與證書管理技巧【免費下載鏈接】agateVery simple server for the Gemini hypertext protocol項目地址: https://gitcode.com/gh_mirrors/aga/agateAgate作為一款輕量級Gemini協議服務器支持通過虛擬主機配置實現多域名站點部署并提供靈活的證書管理功能。本文將詳細介紹如何在Agate中配置虛擬主機、管理多域名證書以及優化站點訪問體驗的實用技巧。快速上手虛擬主機基礎配置啟用多域名支持的核心步驟要在Agate中啟用虛擬主機功能只需在啟動命令中指定多個--hostname參數agate --content ./content \ --hostname example.com \ --hostname example.org \ --addr 0.0.0.0:1965當指定多個主機名后Agate會自動啟用虛擬主機模式。此時服務器會在內容根目錄下創建與域名對應的子目錄例如./content/example.com和./content/example.org分別存儲不同域名的站點內容。目錄結構規范虛擬主機模式下的推薦目錄結構./content/ ├── example.com/ │ ├── index.gmi │ └── posts/ └── example.org/ ├── index.gmi └── about.gmi當訪問gemini://example.com/posts/hello.gmi時Agate會自動定位到./content/example.com/posts/hello.gmi文件。如果請求的路徑是目錄服務器會默認查找該目錄下的index.gmi文件。證書管理從自動生成到手動配置自動證書生成機制Agate采用Gemini協議推薦的TOFUTrust on First Use原則支持自動為指定主機名生成自簽名證書首次啟動時若.certificates目錄不存在或沒有對應域名的證書Agate會自動生成有效期至4096年的ECDSA證書生成的證書包含正確的Subject Alternative Name確保客戶端驗證通過證書和私鑰默認存儲在.certificates目錄采用DER格式存儲手動配置多域名證書對于需要使用自定義證書的場景可通過以下步驟配置創建證書目錄結構.certificates/ ├── cert.der # 默認證書可選 ├── key.der # 默認私鑰可選 ├── example.com/ │ ├── cert.der │ └── key.der └── example.org/ ├── cert.der └── key.der證書文件要求證書必須是X.509格式的DER文件cert.der私鑰必須是RSA、ECDSA或Ed25519格式的DER文件key.der證書必須包含對應域名的Subject Alternative NamePEM格式轉換為DER如果已有PEM格式證書可使用OpenSSL轉換# 轉換證書 openssl x509 -in cert.pem -out cert.der -outform der # 轉換私鑰 openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out key.der -nocrypt高級配置優化多站點管理集中配置模式Central Config通過-C或--central-conf標志啟用集中配置模式所有設置將統一由內容根目錄下的.meta文件管理agate --content ./content \ --hostname example.com \ --hostname example.org \ -C集中配置文件./content/.meta示例# 設置默認MIME類型 [mime] .gmitext/gemini; charsetutf-8 .txttext/plain; charsetutf-8 # 自定義目錄列表樣式 directory-listing-stylegemini directory-listing-preamble./preamble.gmi # 設置緩存控制 cache-controlpublic, max-age3600證書目錄自定義使用--certs參數指定自定義證書目錄位置agate --content ./content \ --hostname example.com \ --certs /etc/agate/certificates \ --addr 0.0.0.0:1965這在服務器遷移或多實例部署時特別有用確保證書文件集中管理且不會意外暴露。常見問題與解決方案證書不匹配錯誤若客戶端提示證書與域名不匹配可能原因證書缺少Subject Alternative Name字段證書文件放置位置錯誤域名大小寫不匹配Agate對域名進行小寫處理解決方法將舊證書移至.certificates目錄頂層或重新生成包含正確SAN的證書。虛擬主機不生效當虛擬主機配置未按預期工作時檢查是否指定了多個--hostname參數內容目錄下是否創建了與域名對應的子目錄啟動命令中是否使用了--skip-port-check當服務器在代理后運行時證書更新與重載Agate在啟動時加載證書證書更新后需重啟服務器才能生效# 停止當前實例 pkill agate # 啟動更新后的實例 agate --content ./content --hostname example.com --hostname example.org總結Agate通過--hostname參數和目錄結構實現了輕量級虛擬主機功能結合靈活的證書管理機制為Gemini協議多站點部署提供了簡單而強大的解決方案。無論是個人博客還是小型社區都能通過本文介紹的方法快速搭建安全、高效的Gemini服務。通過合理配置證書目錄結構和利用集中配置模式可以顯著簡化多域名站點的管理復雜度同時遵循Gemini協議的TOFU原則確保通信安全與用戶體驗的平衡。【免費下載鏈接】agateVery simple server for the Gemini hypertext protocol項目地址: https://gitcode.com/gh_mirrors/aga/agate創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考