EJBCA API說明3
——-Lip
想得到完整的EJbca項目,需要到ejbca官網的svn中check下來。位址是:
https://svn.cesecore.eu/svn/ejbca/branches/Branch_4_0/ejbca,貌似要翻牆。等檢出後,要配一下,因為工程使用了JBOSS5_HOME類變量,我們需要添加該變量,步驟是Window->Preferences->Java->BuildPath->Classpath,指向jboss的根目錄。
經過一段時間研究,發現前面研究的API意義不是太大,提供的例子也幫助不大。其實,這個EJBCA的兩個主要功能就是RA和CA中心。這些API都在目錄modules/ejbca-ejb-cli/src下包org/ejbca/ui/cli中。
在這些包都是*Command.java的檔案,其中的execute(String[]args)是主要的函數,args數組裡面是CA或者是使用者資訊,args[0]是無意義的。生成一個*Command的對象,調用exexute方法,就可以實作其功能了。
在Web界面,進入管理者界面,RA和CA的基本功能,對應以下的類。
Ø CA中心
l BaseCaAdminCommand.java
最基本的類,所有的*Command都繼承它。
n protected void createCRL(String issuerdn, boolean deltaCRL)根據CA的DN号,建立一個CRL。(就這個我測試無法通過,需要調試)
n protected String getAvailableCasString()得到所有的CA名字,組成一個字元串
n protected CAInfo getCAInfo(String caname) 根據CA名,得到CA的資訊
n protected String getIssuerDN(String caname)根據CA名,得到DN
l CaActivateCACommand.java
激活某個CA。注意必須要其辨別号args[2]才可以激活,我使一個CA離線後,結果由于忘記了辨別号,無法激活了,最後隻有建立一個CA。
l CaDeactivateCACommand.java
使一個CA離線,此時CA沒有頒布證書功能。
l CaExportCaCommand.java
導出CA的證書
l CaInfoCommand.java
檢視證書資訊
l CaExportCACommand.java
導出CA憑證,可以選擇格式
l CaGetCrlCommand.java
檢視某一個CA的CRL(測試未通過)
l CaGetCrlInfo.java
得到所有CA對應的CRL
l CaListCAsCommand.java
列出所有的CA資訊
l CaChangeCertProfileCommand.java
改變CA的證書資訊
l CaChangeCATokenSignAlg.java
也是改變CA的資訊,改變簽名算法
l CaExportProfilesCommand.java
把資訊從資料庫中以XML檔案導出來
???測試無效果
l CaImportProfilesCommand.java
把XML中的資料導入到出據庫中
???測試無效果
l CaGetRootCertCommand.java
根據CA名,得到根證書
l CaImportCACertCommand.java
根據CA名,導入相關CA憑證檔案(檔案路徑)
l CaImportCACommand.java
導入一個keystore,根據它建立一個CA
l CaImportCertCommand.java
把一個證書導入到資料庫中
l CaImportCertDirCommand.java
根據CA名,把它的證書導入到資料庫中
l CaImportCRLCommand.java
根據CA名,把它的CRL導入到資料庫中
l CaImportVCVCACommand.java
導人一個CVC檔案,提供CA資訊,并根據這個檔案建立一個CA
l CaInitCommand.java
建立一個CA,args資料比較長,資訊比較多。并釋出它的CRL和證書
l HwCaInitCommand.java
功能和CaInitCommand一樣?
l CaListExpiredCommand.java
列出在args[1]時間内會到期的證書
l CaRepulishCommand.java
重新釋出一個CA下的所有使用者的證書
l CaRestoreKeyStoreCommand.java
儲存一個PKCS#12檔案中的keystore
l ImportMSCACertificates.java
從一個MS CA dump中導入證書 (貌似用不到)
RA中心比較簡單,下次再看。。。。。。