2016-03-25 31 views
0

我們用一個靜態值「usernameTest」作爲用戶名,請求EJBCA生成X.509榮譽證書;在使用此satic用戶名生成證書後,我們將其更改爲唯一值,以唯一地標識每個證書(由於使用靜態用戶名被認爲是更新,因爲所有證書(*)的用戶名相同),但現在EJBCA拒絕生成證書並且stil引用舊的靜態用戶名'usernameTest';我們收到此錯誤:EJBCA拒絕產生錯誤的證書:不允許使用相同的密鑰

用戶'250320092916'不允許使用與用戶'usernameTest'使用的用戶相同的密鑰。

我們先前撤銷的用戶名「usernameTest」產生的所有證書,但我們仍然從EJBCA收到此錯誤信息。有什麼方法可以刪除用戶名'usernameTest'?

每個證書都有一個唯一的SubjectDN中和用戶名。

EJBCA的版本是ejbca-6.2.0

(*):在EJBCA管理GUI中生成的所有證書都與相同的用戶名相關。

在此先感謝。

回答

0

問題解決;問題不在於對usernameTest的引用仍然在EJBCA中,而是相同的密鑰(RSA公鑰)用於其他用戶('250320092916')的請求。

似乎這是一個已知的限制,當依靠從Safenet ProtectServer系列的PTK-C仿真器的HSM;當我們重新初始化模擬器時,模擬器會重新啓動它的隨機生成器(我懷疑是不正確的),這意味着它會始終以相同的順序生成相同的密鑰(導致這種錯誤)。

但也是消息錯誤不清楚;在沒有指定的情況下談論「密鑰」時,這導致與subjectDN或其他傳送給EJBCA的屬性混淆,作爲錯誤消息,它可能是「公鑰」或「RSA密鑰」,而不是密鑰;)

1

它與HSM無關。 CA的默認策略設置是不允許用戶共享相同的最終用戶公鑰。即不向不同的用戶頒發具有相同公鑰的證書。這是CA設置中的複選框設置。

+0

這是我爲解決此問題所做的。實際上,我們的要求是每個證書有一個不同的密鑰對,而在我們的開發/測試環境中,我們使用模擬器來生成基於Safenet HSM(僅限軟件模式)的密鑰對,該密鑰對有時會生成重複的密鑰對。 –

2

托馬斯是正確的。轉到CA功能下的「證書頒發機構」。編輯您的CA並在「指令」部分下找到名爲「強制唯一公鑰」的設置。

取消選中執行,您將能夠爲不同的用戶使用相同的公鑰。

+0

這是我爲解決此問題所做的。實際上,我們的要求是每個證書有一個不同的密鑰對,而在我們的開發/測試環境中,我們使用模擬器來生成基於Safenet HSM(僅限軟件模式)的密鑰對,該密鑰對有時會生成重複的密鑰對。 –

1

可以配置PTK-C模擬器不能重複使用隨機種子(是的,這是很煩人的)。對於ejbca我們已經記錄了它here。 您必須設置環境變量ET_PTKC_SW_AUTOSEEDRNG = true。通過這個設置,模擬器每次都會生成一個新的密鑰。

+0

我會試試這個。謝謝托馬斯。 –

相關問題