EJBCA/使用EJBCA证书服务的工作整理

来自站长百科
跳转至: 导航、​ 搜索

EJBCA | EJBCA安装 | EJBCA使用

EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE 应用程序集成。

EJBCA+JBOSS安装部署[ ]

版本:Jboss-4.0.4.GA+EJBCA_3_4_2

EJBCA从4.x开始支持Web service。 jboss-4.2.0有某些改动,导致ejbca_3_4_1不能读取jboss的版本信息。

ejbca3.4.2开始支持md5WithRSAEncryption进行CA签名

安装过程[ ]

  • 设置系统变量JBOSS_HOME为后jboss所在的目录。
  • 修改ejbca_3_4_2/conf/ejbca.properties.sample为ejbca.properties,可以修改里面的配置,也可以不改。
  • 到ejbca_3_4_2目录下 ant bootstrap
  • ant j2ee:run 启动jboss
  • ant install 生成了tomcat服务器证书,浏览器证书。注意按提示输入。特别是服务器证书的CN必须是安装机器的域名,按默认的话则会导致只有包含localhost的URL能访问,否则抛出异常:java.io.IOException: HTTPS hostname wrong: should be <xxx>
  • 复制并关闭jboss,ant deploy部署ejbca
  • 在浏览器里面导入ejbca_3_4_1/p12/superadmin.p12证书,密码默认是ejbca
  • ant j2ee:run,重新启动jboss
  • 打开浏览器,输入https://localhost:8443/ejbca就可以通过web方式管理CA了!

GOS中使用[ ]

在GOS中使用,一般要新建一个CA,然后使用该CA签发证书。注意要选中Use PrintableString encoding in DN选项

  • 在浏览器中,打开地址https://localhost:8443/ejbca/adminweb/index.jsp
  • 创建新CA,CA Functions ->Edit Certificate Authorities 下端 输入新CA名字 ICTCA 然后点击create
  • 在subjectDN 输入:CN=ict,O=ICT,C=CN
  • Signed by 选 AdminCA1
  • Validity (Days) 输入 3650
  • Use PrintableString encoding in DN选中CRL Expire Period (Hours)填 48
  • 然后提交,新的CA就创建完成。

手工获取证书[ ]

用JDK中的keytool生成证书请求(X代理安装的盘符):

X:\my_jars\cert\c824>keytool -genkey -dname "CN=zjc,OU=Grid,O=ICT,L=BJ,C=CN" -keypass zhujianchao -keystore _zjc.jks -storetype JK
S -storepass zhujianchao -keyalg RSA -keysize 512 -sigalg "sha1withRSA"
X:\my_jars\cert\c824>keytool -certreq -keypass zhujianchao -keystore _zjc.jks -storepass zhujianchao -storetype JKS -file z_req.pe
m -sigalg "sha1withRSA"

新建用户,注意CN,OU等等DN属性要与keytool中的一致。

然后到ejbca 的页面:

https://localhost:8443/ejbca/publicweb/apply/apply_man.jsp

填入用户名、密码和上面生成的z_req.pem的内容

下载CA签名的证书cert.pem.

将cert.pem和_zjc.jks中包含的私钥签出代理证书,用proxyInit工具。

另外,建议使用firefox浏览器,若出现报错信息比较详细


通过web service接口使用EJBCA签发证书[ ]

1)创建新的管理员用户,进入管理页面https://localhost:8443/ejbca/adminweb/index.jsp

  1. Administration-->RA Functions Add End Entity 添加一个user, 假设用户名为clientAdmin,密码foo123,
  2. CA选最初始的CA(也是给tomcat容器颁发证书的CA,不然tomcat不会通过验证,报错为 javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target),
  3. Token选jks file,
  4. Administrator选中。

2)到publicweb-->certEnrollment-->fetch a server generated key store.填入刚才创建的用户的用户名和密码,下载keystore 选1024长度的证书,假设名字为clientAdmin.jks 3)Edit Administrator Privileges 把新建的用户(clientAdmin)加入Administrator组。 4)按http://ejbca.org/manual.html#Additional%20howtos添加相应CA的access rules,一般把所有的权限都加上即可。 5)设定IP和主机名映射

若CA服务器所在的主机没有域名,可以在客户端的主机设定ip到主机名的映射:如我们在ant install步骤时设定的Web容器证书的CN是cook.net,则我们在客户端Windows机器修改%WINDOWS%\system32\drivers\etc\hosts 增加

10.61.0.93 cook.net

如果是linux,则用root身份登陆后 修改/etc/hosts 增加

10.61.0.93 cook.net

6)试用EJBCA自带的客户端工具:把第二步获得的证书放在ejbca_3_4_1\dist\ejbcawscli\,编辑ejbcawsracli.properties,特别要注意 ejbcawsracli.url 中的hostname需要跟Web容器证书的CN一致(Web容器证书在ant intall时生成),否则报错java.io.IOException: HTTPS hostname wrong: should be <xxx>

到ejbca_3_4_1\dist\ejbcawscli\目录,执行ejbcawsracli.cmd finduser USERNAME Equals wsadmin,这个命令通过调用web service,查询是否有wsadmin这个用户。更多的命令可以通过不带参数执行ejbcawsracli.cmd 查看

7)使用我们开发的genCert证书工具包,批量生成私钥、证书、代理证书

  1. 下载/home/gos2/ICTCA/genCert到客户主机,也可以直接在原位置操作,只要这台机器知道cook.net对应到EJBCA服务器的IP地址(同第5步设置)
  2. 把第二步获得的证书clientAdmin.jks放在该目录下
  3. 修改genCert目录下caclient.properties配置文件
  4. 填上我们创建的新CA的名字:caName=zjcCA
  5. 填上CA服务器web服务的URL,注意使用域名而不是IP:caServUrl=https://cook.net:8443/ejbca/ejbcaws/ejbcaws?wsdl
  6. 填上jks证书文件:jksFile=clientAdmin.jks
  7. 证书密码:jksPass=foo123
  8. 然后执行genCert.sh即可

参考来源[ ]

http://read.newbooks.com.cn/info/130101.html

EJBCA使用手册导航

EJBCA安装

EJBCA安装 | EJBCA+JBOSS+Oracle安装

EJBCA使用

EJBCA的使用 | 使用EJBCA证书服务的工作整理 | 管理员使用指南