Ssl

帶有錯誤 CA 的 Openvpn 簽名證書

  • September 18, 2013

我有一個工作(直到現在)ubuntu openvpn 伺服器。

我認為我的伺服器使用錯誤的 CA 來簽署客戶端 CRT。

例如:

我使用“source ./vars”,後跟“./build-key john.doe”,一切正常(工作正常是指我得到了 john.doe 的 csr、crt 和密鑰)。

但是,如果我使用以下命令測試 crt:“openssl verify -CAfile ca.crt keys/john.doe.crt”,我會得到以下資訊:

鍵/john.doe.crt:C = VE,ST = MI,L = 加拉加斯,O =www www,CN = john.doe,emailAddress = me@myhost.mydomain 錯誤 20 在 0 深度查找:無法獲取本地發行者證書

測試任何工作(和更舊的)客戶端crt,不會引發錯誤……

我也試過這個命令:“openssl x509 -in keys/jhon.doe.crt -noout -text | grep Issuer”並拋出:

發行人:C=VE, ST=MI, L=Caracas, O=www www, CN=fred.durst/name=Fred Durst/emailAddress=me@myhost.mydomain

這很奇怪,因為 Fred Durst 是客戶,而不是 CA……

當我使用工作客戶端 crt 嘗試相同的命令時,它會拋出:

發行人:C=VE, ST=MI, L=Caracas, O=www www, OU=Section, CN=SGBVPN/name=SGBVPN

這對我來說看起來不錯……奇怪的是,Fred Durst 是在所有這些問題出現之前創建的最後一個 crt.. 在 fred.durst 之前創建的所有舊客戶端 crt 都可以正常工作,問題只是發生在新密鑰上.. .

有什麼線索嗎?TIA

生成這些證書並沒有完全標準的方法。根據腳本的內容,它可能會做幾件事。但是,我要指出兩點。

首先,您沒有說連接不起作用。我真的希望沒有人能夠使用這些證書進行身份驗證;如果是,則意味著任何使用者都可以簽署另一個任意證書請求並授予對您的 VPN 的訪問權限。防止這種情況的方法是頒發明確不是 CA 證書且僅設置了必要的密鑰使用屬性的證書。

無論如何,通常您將使用命令對證書進行簽名,該openssl ca命令取決於openssl.conf文件​​中的參數(通常在命令行中/etc/openssl.conf或在命令行中指定)。檢查其中的選項是否正確。找到它正在使用的 CA 證書和密鑰,並確保它們是正確的(同樣,這在 openssl 配置文件中或在命令行中)。

如果您不使用 openssl,則適用相同的通用解決方案 - 找到 CA 證書並確保它沒有被意外替換。

如果您以某種方式設法覆蓋了密鑰(或其他人這樣做了),您將不得不找到一個備份副本或重建您的 PKI。

如果沒有您的腳本內容,我無法告訴您更多資訊。

引用自:https://serverfault.com/questions/539711