Linux
續訂 SSL 客戶端證書
對於必須在任何地方都可用的內部使用的基於 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 年),即使更新證書有些麻煩。因為證書有效期越長變化越大,一些授權使用者變得未經授權但仍然擁有有效證書。