如何配置 OpenVPN 伺服器讀取客戶端證書的位置?
我們在幾個自動縮放的實例上執行 OpenVPN 伺服器(用於冗餘和自我修復),因此它以腳本方式進行配置。我們在這些臨時實例中管理客戶端證書的方法非常笨拙,目前涉及將 tarball 提取到
/etc/openvpn/easy-rsa/pki
目錄中。我只想將客戶端證書移動到共享網路目錄,但我無法弄清楚哪些配置設置會通知 openvpn 這些 pki 子目錄。(這些
ca/cert/key/dh
設置都指向層次結構的深處,即/etc/openvpn/easy-rsa/pki/issued/server.crt
,這對我來說意味著不會有任何關於 easy-rsa 目錄結構的內置假設。)openvpn 如何找到這些文件?
嗨,謝謝你的問題…
您認為這要容易一些;-)。您不需要所有客戶端證書。客戶端需要客戶端證書…
在配置文件旁邊有 3-4 個生成和“連結”的文件,它們可以作為部分直接嵌入到配置文件中(這些是您在伺服器/客戶端上所需要的全部內容)。
- TLS 密鑰(可選但使用還不錯;-))
這是即使在啟動客戶端特定流量之前也可以保護通信的共享密鑰 - 在不知道此密鑰的情況下,伺服器會簡單地忽略您的通信。這個文件在服務端和客戶端是一樣的
CA 證書頒發機構 用於確認遠端端信任的證書是什麼。
- server:頒發客戶端證書的機構的證書。這就是您要查找的內容 - 因為此文件可用於在連接期間檢查所有已頒發的客戶端證書。此單個文件可用於檢查由同一 CA 頒發的目前和將來的證書(這是 easy-rsa 所涵蓋的內容)
- 客戶端:此文件用於檢查伺服器證書是否受信任。它可以與伺服器端相同,但從技術上講,伺服器證書可以由與客戶端證書不同的 CA 頒發。
鑰匙
用於保護通信的私鑰。該文件應妥善保管,因為它是確認您身份的文件。
- 證書
證書(帶有與 X.509 結構中的證書頒發機構相關的附加資訊的公鑰“包裝”)。該文件甚至可以公開獲得,因為它僅用於檢查通信的有效性(用於簽名的密鑰確實是“那個”受信任的密鑰)。
正如您提到的easy-rsa,CA 很可能對於客戶端和伺服器端是相同的。一旦你有了通用的 TLS 密鑰、通用的 CA 文件和擁有相應證書的密鑰,你就擁有了讓它工作所需的一切。
一旦您為使用者生成密鑰和證書並將其傳遞給使用者(或至少將其發送出去),您就不再需要它,甚至可以從伺服器中刪除此使用者密鑰+證書…
在“大”證書頒發機構中,發布伺服器甚至不知道使用者密鑰,因為證書請求包含創建簽名證書所需的公鑰(從私鑰派生的資訊) - 密鑰是在客戶端生成的永遠不要離開它的過程……