Hy Guys!我正在尝试使用bouncycastle创建x.509证书,该证书应该由另一个证书签名并存储为PEM base 64格式.

我已经拥有自签名证书(公钥和私钥).现在我想创建一个新的,并使用现有的自签名证书签名.

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC");

keyPairGenerator.initialize(1024, new SecureRandom());

KeyPair keyPair = keyPairGenerator.generateKeyPair();

X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();

X500Principal dnName = new X500Principal("CN=Sergey");

certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));

certGen.setSubjectDN(dnName);

certGen.setIssuerDN(caCert.getSubjectX500Principal());

certGen.setNotBefore(validityBeginDate);

certGen.setNotAfter(validityEndDate);

certGen.setPublicKey(keyPair.getPublic());

certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");

certGen.addExtension(X509Extensions.AuthorityKeyIdentifier, false, new AuthorityKeyIdentifierStructure(caCert));

certGen.addExtension(X509Extensions.SubjectKeyIdentifier, false, new SubjectKeyIdentifierStructure(keyPair.getPublic()));

X509Certificate cert = certGen.generate(caCertPrivateKey, "BC");

验证通过没有例外,这意味着从我的角度来看,它是由caCert成功签署的:

cert.verify(caCert.getPublicKey());

然后我解码它到PEM基地64:

PEMWriter pemWriter = new PEMWriter(new PrintWriter(System.out));

pemWriter.writeObject(cert);

pemWriter.flush();

我在输出中得到这样的东西:

—–开始认证—–

MIIDDjCCAnegAwIBAgIBFDAN ……..

—–证书结束—–

当我打开它,我看到下一个:

为什么没有通过caCert成功签名的认证链?

我的代码需要更改才能看到我所期望的认证链?

java证书cert_java – 使用带有证书路径(cert chain)的bouncy...相关推荐

  1. 忽略Java中的自签名证书

    我在职业生涯中遇到过几次问题,就是我们有时希望允许自签名证书用于开发或测试目的. Google的快速搜索显示了多年来无数Java开发人员遇到的麻烦. 根据确切的证书问题,您可能会收到类似以下内容之一的 ...

  2. pythonrequests证书_requests的ssl证书验证、身份认证、cert文件证书

    SSL证书:Requests 可以为 HTTPS 请求验证 SSL 证书,就像 web 浏览器一样.SSL 验证默认是开启的,如果证书验证失败,Requests 会抛出 SSLError.在该域名re ...

  3. java 数字信封_本地证书实现数字信封加解密demo-java

    [实例简介] 提供获取加密证书接口.数字信封加密以及数字信封解密接口源码,IDEA编译,测试数据符合标准openssl,测试的时候要注意证书和私钥的存放路径 [实例截图] [核心代码] SealEnv ...

  4. java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书

    jdk自带的证书管理工具叫keytool,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 1. 名词 自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书. 证书 ...

  5. java通过证书获取CN_java – 从证书DN解析CN [重复]

    参见英文答案 > How to extract CN from X509Certificate in Java?                                    16个答案 ...

  6. 【ssl认证、证书】SSL双向认证java实战、keytool创建证书

    文章目录 概述 keytool示例 参考 相关文章: //-----------Java SSL begin---------------------- [ssl认证.证书]SSL双向认证和SSL单向 ...

  7. java安全架构____CA数字证书原理

    转自百度百科:http://baike.baidu.com/link?url=3QmDWbnu1GE0p7wjgELkOfLrHGoB5VVXF88hSDnrfDWRP3hB39S6rcRXCMa3g ...

  8. 【Java】ios应用开发证书申请流程

    [Java]ios应用开发证书申请流程 步骤 下面是生成钥匙串文件流程 打开mac电脑的启动台,找到钥匙串 这个就是在mac电脑上得到的钥匙串文件 下面是开发者平台申请流程 登录iOS开发者平台:[i ...

  9. java生成数字证书_java生成数字证书方法

    Java 中生成数字证书也很简单的. 1.创建证书 Java 中的 keytool.exe (位于 JDKBin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书 ...

最新文章

  1. 山西电大统考英语和计算机试题,2017年电大统考计算机试题及答案.doc
  2. 076_浏览器对象模型
  3. 深入理解 Java G1 垃圾收集器--转
  4. Ubuntu14.04 x64系统设置Qt5.8桌面快捷方式
  5. 学习Python中用numpy与matplotlib遇到的一些数学函数与函数的绘图
  6. android学习笔记---使用AsyncTask实现异步处理,内部使用线程加Handler
  7. 线程退出时执行函数,处理资源
  8. GNU make manual 翻译(六十六)
  9. linux SPI操作LCD12864液晶
  10. 扬州市 工程师职称计算机考试,扬州市建筑专业工程师专业技术资格条件
  11. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件
  12. TJOI 2015 弦论 题解
  13. 关于开发人员申请苹果账号相关事宜
  14. Caused by: liquibase.exception.ValidationFailedException: Validation Failed:1 change sets check sum
  15. 中国人工智能公司十强排行榜新鲜出炉
  16. 数据库:数据类型、数据项、数据元素、数据对象、数据结构的概念与相互之间的关系
  17. 光时域反射仪的选择应该从哪些方面考虑?
  18. 一 你好啊,我叫阿丁1
  19. python实现接口自动化
  20. 现代计算机的内存储器由,内存储器包括哪些

热门文章

  1. 向大家推荐Ubuntu下九大最佳绘图程序
  2. 七年级计算机会考重点知识点总结,七年级语文期中考试复习知识点总结
  3. 被告知孩子学校偷钱后
  4. 如何快速熟悉一套程序的框架结构
  5. 2019参加Python开发培训靠谱吗?
  6. python文件处理基础_第六篇:python基础之文件处理
  7. becon帧 wifi_无线路由器Beacon时槽值设置为100同500有什么区别?是不是设置越高WIFI信号的传输距离就越远越强?...
  8. 激活函数 ReLU、sigmoid、tanh(双曲正切)
  9. 【办公软件有哪些】万彩办公大师教程丨PDF页面编辑
  10. echarts中月份数据缺少怎么补齐呢?