Linux

續訂 SSL 客戶端證書

  • January 3, 2013

對於必須在任何地方都可用的內部使用的基於 Web 的軟體,我創建了安裝在授權消費者的瀏覽器中的客戶端證書。

現在,隨著 2012 年的結束,它們都已過期,需要續訂。我已發出 PKCS #12 證書 (.p12)

這是我的問題

  • 是否可以延長客戶端證書的生命週期?
  • 我是否必須在所有客戶端上重新安裝證書,還是有其他方式(例如從伺服器集中安裝,可能是某種更新機制)?
  • 如何在 Linux 上使用 openssl 更新/重新生成客戶端證書?

因為這可能很有趣,所以這是我創建瀏覽器證書的方式

# client private key
openssl genrsa -des3 -out client.key 1024

# generate certificate signing request
openssl req -new -key client.key -out client.csr

# create certificate, sign with server key
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

# export into pkcs12
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

是否可以延長客戶端證書的生命週期?

不,這是不可能的。

客戶證書有一定的有效期,不能更改。唯一的可能是創建具有新有效期的新證書。

我必須在所有客戶端上重新安裝證書還是有其他方法

您無法從伺服器訪問客戶端瀏覽器中的證書。您可以做的是開發一個網頁(使用客戶端證書進行身份驗證),允許使用者創建新證書並將其導入他們的瀏覽器。

在此網頁的伺服器端,您可以使用去年使用的相同證書請求(安全性稍差)創建新證書,也可以使用您在數據庫中的使用者資訊創建新證書請求。您可以使用您在文章中描述的相同方式使用 openssl 執行此操作。

如何在 Linux 上使用 openssl 更新/重新生成客戶端證書

正如我在上一個問題中所寫,您需要創建一個新證書。您可以使用去年使用的證書請求來執行此操作,或者創建一個新請求(更安全但也更複雜)。然後您需要使用伺服器密鑰對該請求進行簽名並將其導出到 pkcs12。

我會堅持您目前的有效期(1 年),即使更新證書有些麻煩。因為證書有效期越長變化越大,一些授權使用者變得未經授權但仍然擁有有效證書。

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