Openvpn

Openvpn:從現有證書頒發機構生成客戶端證書

  • July 18, 2019

我的公司使用 OpenVPN 將我們的客戶連接到我們的中央伺服器,以便於管理。我們的防火牆軟體(和他們的)內置了對 OpenVPN 的支持,並包括一個證書生成器。最近,這台發電機停止工作了,我們不知道為什麼。但是過去無論如何都很難,所以我們想嘗試一種新的方法。

我們只想在具有 OpenVPN 的本地電腦上生成客戶端證書,而不是在防火牆軟體上生成,因為它似乎有問題。我們有一個現有的證書頒發機構,我有完整的明文可讀證書。這顯然包括所有頒發者資訊、模數、簽名和證書本身。

那麼我的問題是,我可以在基於 Debian 的 Linux 發行版上使用 OpenVPN 從現有的證書頒發機構生成客戶端證書嗎?我可以重新生成並簽署一個新的 CA,但我寧願不這樣做,因為我們有很多客戶端,更新他們的 VPN 客戶端證書會很麻煩。

我嘗試使用 OpenVPN 生成 CA 並使用我需要的證書數據更改證書數據,但 OpenVPN 生成的格式似乎與我的格式有點不同。

CA 和客戶端是 PKCS12。這可能嗎?還是我必須重新製作所有東西?

當然,為什麼不呢?

  • 將 CA 轉換為 PEM:
openssl pkcs12 -in ca.pfx -out ca.crt -clcerts -nokeys
openssl pkcs12 -in ca.pfx -out ca.key -nocerts -nodes
  • 生成 4096 位 RSA 密鑰及其 CSR(證書籤名請求):
openssl genrsa -out client.key 4096
openssl req -sha256 -out client.csr -key client.key -new
  • 使用 CA 密鑰簽名:
openssl x509 -sha256 -req -days 365 -CA ca.crt -CAkey ca.key \
-in client.csr -set_serial 01 -out client.crt
  • 將客戶端密鑰/證書轉換為 PKCS12:
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

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