public static void genX509(String certPath, String password,int keysize, String algorithm) throws Exception {// 创建KeyStoreKeyStore store = KeyStore.getInstance("PKCS12");store.load(null, null);// 生成一对公私钥,这部分如果自己已经有了PublicKey,可以直接在下面使用,不用生成KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");kpg.initialize(keysize);KeyPair keyPair = kpg.generateKeyPair();// 这个字符串根据自己情况填String issuer = "C=CN,ST=BJ,L=BJ,O=dingtalk,OU=dingtalk,CN=dingtalk";String subject = issuer;X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));certGen.setIssuerDN(new X500Principal(issuer));certGen.setNotBefore(new Date(System.currentTimeMillis() - 10 * 365* 24 * 60 * 60 * 1000));certGen.setNotAfter(new Date(System.currentTimeMillis() + 10 * 365 * 24* 60 * 60 * 1000));certGen.setSubjectDN(new X500Principal(subject));certGen.setPublicKey(keyPair.getPublic());// 此处可直接传入线程的PublicKeyif (algorithm == null || algorithm.equals("")) {certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");} else {certGen.setSignatureAlgorithm(algorithm);}X509Certificate cert = certGen.generateX509Certificate(keyPair.getPrivate());// 私钥有现成的也可直接传入store.setKeyEntry("alias", keyPair.getPrivate(),password.toCharArray(), new Certificate[] { cert });// 导出为 cer 证书 和 keystore文件try {FileOutputStream fos = new FileOutputStream(certPath + ".cer");FileOutputStream ksFOS = new FileOutputStream(certPath + ".keystore");fos.write(cert.getEncoded());fos.close();store.store(ksFOS, "123".toCharArray());ksFOS.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (CertificateEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws Exception {X509Service impl=new X509ServiceImpl();String certDestPath = System.getProperty("user.dir") + "/src/main/resources/static/test/aaaa";genX509(certDestPath, "123", Default_KeySize, "");impl.printCert(certDestPath + ".keystore", "123");}

生成SAML所需X509证书相关推荐

  1. 利用openssl生成X509证书

    利用openssl生成X509证书 1.生成密钥 openssl genrsa -out test.key 2048 2.生成cert证书(sha512/sha256/sha1要根据实际算法) ope ...

  2. (转)创建X509证书,并获取证书密钥的一点研究

    创建X509证书,并获取证书密钥的一点研究 作者:肖波 个人博客:http://blog.csdn.net/eaglet ; http://www.cnblogs.com/eaglet 2007/7 ...

  3. php获取x509证书信息,创建X509证书,并获取证书密钥的一点研究

    作者:肖波 背景 服务器SSL数字证书和客户端单位数字证书的格式遵循X.509标准.X.509是由国际电信联盟(ITU-T)制定的数字证书标准.为了提供公用网络用户目录信息服务,ITU于1988年制定 ...

  4. X509证书认证流程介绍

    X509证书介绍 X.509 是由国际电信联盟(ITU-T)制定的数字证书标准,相信这是人尽皆知的了,目前X.509证书据我所知有三个版本,.net中使用的是x.509-2,X.509-2 版引入了主 ...

  5. 【openssl】利用openssl完成X509证书和PFX证书之间的互转

    利用openssl完成X509证书和PFX证书之间的互转 # OpenSSL的下载与安装: 1.下载地址: 官方网址-- https://www.openssl.org/source/ OpenSSL ...

  6. OpenSSL生成root CA及签发证书

    一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...

  7. 关于X509证书和密钥的概念

    证书概述 证书主要包括颁发者和被办法者的信息,以及被颁发者的公钥,和CA机构对这些信息的认证, 主要内容: **版本** 识别用于该证书的 X.509 标准的版本,这可以影响证书中所能指定的信息.迄今 ...

  8. 通过OpenSSL解析X509证书基本项

    在之前的文章"通过OpenSSL解码X509证书文件"里,讲述了如何使用OpenSSL将证书文件解码,得到证书上下文结构体X509的方法.下面我们接着讲述如何通过证书上下文结构体X ...

  9. 【苹果相册推】您只需使用证书并发布证书描述文件(无需发布)上传PEM范例文件

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

最新文章

  1. 基于 Asio 的 C++ 网络编程
  2. 用户画像2种数据存储的方式
  3. 技术人员职业生涯的红色警报
  4. Zlib解压/压缩实现
  5. Spring Data Jpa的@Temporal注解
  6. Android App性能优化十技巧
  7. Java 利用泛型实现折半查找法
  8. 阶段3 1.Mybatis_09.Mybatis的多表操作_1 mybatis表之间关系分析
  9. 今天,一起吐槽容器镜像中那些让人一言难尽的事情
  10. CSS——下拉框的制作(以小米商城为例)
  11. 2010年下半年11月份系统架构设计师上午试题以及参考答案之六
  12. 车联网大规模商用关键突破口深度调研车路协同智慧高速全国建设情况
  13. flutter 实现文字竖排以及动画效果(文字逐一显示)
  14. 智能编程计算机表演赛,中国儿童青少年计算机表演赛在京闭幕
  15. 可以边下边看的BT资源搜索下载工具:Tribler免费版
  16. 轻松获取Excel安装路径
  17. 【Scratch二次开发】03-构建桌面应用
  18. Qt snippets
  19. 搜索引擎技术的概要以及相关知识
  20. 让程序实现xp界面风格

热门文章

  1. List去重 排序 多list 穿插筛选 (java 8)
  2. netgear 网件路由器怎么了
  3. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?
  4. AI简史--从1308到2016
  5. guice使用方法(1)
  6. 今天教你用 Python 爬取网站的指南
  7. DLL文件应该放在哪里?
  8. JavaScript (11) ES6语法
  9. 计划任务(啊啊啊啊啊)
  10. lombok 异常:Lombok needs a default constructor in the base class less... (Ctrl+F1) Inspe