PKCS12 证书的生成及验证

PKCS12 证书的生成及验证
摘要由CSDN通过智能技术生成
               

本文首先感谢 Apple 开发者论坛的eskimo1,他是我见过的最热心肠的人,对任何人他都不吝于给予无私帮助。

服务器生成PKCS12证书库,并通过servlet导出为DER客户端证书(含一个密钥和一个证书)。iPhone从服务器下载证书后,如何进行验证?

一、生成证书

假设密钥库为dlt.p12,库密码ipcc@95598,有效期1天,则命令为:

keytool -genkey -v-alias root -keyalg RSA -storetype PKCS12 -keystore dlt.p12 -dname "CN=www.handtimes.com,OU=ipcc,O=云电同方,L=昆明,ST=云南,C=中国"-storepass ipcc@95598 -keypass ipcc@95598

生成客户端用的证书:

keytool -genkey -v-alias p12client -keyalg RSA -storetype PKCS12 -keystore dlt.p12 -dname"CN=www.handtimes.com,OU=ipcc,O=云电同方,L=昆明,ST=云南,C=中国" -storepass ipcc@95598-keypass 123456 -validity 1

 

要查看已生成的证书,用下面的命令:

keytool -list -v-alias p12client -keystore dlt.p12 -storepass ipcc@95598 -storetype PKCS12

或者:

keytool -list -v-keystore IPCCCA dlt.p12 ipcc@95598 -storetype PKCS12

 

如果需要将p12证书导出为.cer格式,可以使用命令:

keytool -export-alias p12client -keystore dlt.p12 -storetype PKCS12 -storepass ipcc@95598 -rfc-file p12.cer

查看.cer文件:

keytool -printcert-v -file /Users/kmyhy/Desktop/client.cer

如果需要将keystore中的私钥导出为.p12格式:

Keytool.exe-importkeystore -srckeystore IPCCCA -srcstoretype jks -srcstorepass ipcc@95598 -srcaliasp12client  -destkeystore dltclient.p12-deststoretype pkcs12 -deststorepass ipcc@95598 -destkeypass 123456 validity 3

注意,keytool用的是jdk1.6提供的版本。此时命令提示忽略用户输入的destkeypass密码:

重新输入密码123456,回车,将在用户主目录下生成dltclient.p12文件。

查看dltclient.p12内容:

keytool.exe -list-keystore dltclient.p12 -storepass ipcc@95598 -storetype pkcs12

可以看到如下输出:

 

可以看到其中包含了证书和私钥,并且其认证指纹是和IPCCCA中的一模一样的。

一、提供证书下载

先把生成的p12证书库dlt.p12放到服务器目录下。

新建一个Servlet:GetP12Cert。

public class GetP12Cert extends HttpServlet {

private static final long serialVersionUID = 1L;

    private static final int max_days=1;  

    /**

     * @see HttpServlet#HttpServlet()

     */

    public GetP12Cert() {

        super();

        // TODO Auto-generated constructor stub

    }

 

/**

 * @see HttpServlet#doGet(HttpServletRequestrequest, HttpServletResponse response)

 */

protected void doGet(HttpServletRequestrequest, HttpServletResponse response) throws ServletException, IOException {

 String filename="C://Documents andSettings//Administrator//dlt.cer";

 String pass="ipcc@95598";

 Pkcs12Manager man=null;

 String alias="p12client";

 String keypass="123456";

 try{

  man=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值