SpringBoot的SSL个人CA签发二级证书(动态添加客户端证书)

2018年07月10日 17:09:09 得谷养人 阅读数:388

当我们的服务端部署完成运行起来之后,trustStore信任库已经建立,受信任的客户端证书已经确定下来,如果我们想再添加一个受信任的客户端证书,又不想停掉服务端,这时就可以使用个人CA根证书签发二级证书的方法。当然官方CA更好,但是相比个人CA官方CA不太方便。

其实还有一个方法实现动态添加服务端信任的客户端证书,就是用代码实现trustStore信任库热加载,网上也有相关的文章,但是相比签发二级证书的方式,性能低很多,也麻烦很多。因为每次服务端的认证都会触发服务端扫描trustStore信任库,判断当前访问的客户端是否在信任库内。

本实例假设SSL的单向认证已经建立,已经有了一个server.key.p12服务端keystore。

单向认证可查看连接: https://blog.csdn.net/weixin_41917987/article/details/80987835

本人遇到坑得到的结论,如果你对相关概念不是很明确,可以看一下本人写的上一篇文章开头:https://blog.csdn.net/weixin_41917987/article/details/80988197

1、创建个人CA根证书,用于给需要新添加的客户端证书签名。

keytool -genkey -v -alias ca -keyalg RSA -storetype PKCS12 -keystore E:\7\ca.key.p12

2、将CA根证书导入到服务端的信任库中,本例keyStore和trustStore使用的是一个库,当然也可以使用不同库。

a)导出CA根证书的公钥文件

keytool -keystore E:\7\ca.key.p12-export -alias ca -file E:\7\ca.cer

b)将cer文件导入到trustStore信任库中

keytool -import -v -file E:\7\ca.cer-keystore E:\7\server.key.p12

3、创建客户端证书

keytool -genkey -v -alias qq-keyalg RSA -storetype PKCS12 -keystore E:\7\qq.key.p12

4、使用个人CA根证书给客户端证书签名,因为我们不会将新建的客户端证书导入到服务端的信任库中,但是我们又想让服务端信任新建的客户端证书,那么使用服务端已经信任的CA根证书给新建的客户端证书签名,就可以了。

a)生成签名请求,生成的是一个CSR文件

keytool -certreq -alias qq -keystore E:\7\qq.key.p12-file E:\7\qq.csr -v

b)使用CA根证书给客户端证书签名,得到的cer文件就是签名后的公钥证书

keytool-keystore E:\7\ca.key.p12 -gencert -alias ca -infile E:\7\qq.csr -outfile E:\7\qq.cer

c)将签名后的cer文件导入到qq.key.p12文件中,因为qq.key.p12是客户端证书,需要安装在客户端,但是

qq.key.p12中的公钥文件还是qq签发的,并没有被修改,需要我们将cer文件导回,将原来的公钥替换掉才可以。

keytool -import -v -file E:\7\qq.cer -keystoreE:\7\qq.key.p12

d) 查看被签名后的证书详情,扩展里边证书的发布者已经修改为ca

keytool -list -v -keystore E:\7\qq.key.p12 -storepass qqqq123

5、双击qq.key.p12文件安装新建的客户端证书,安装到个人证书,前面安装过程已有,不再赘述。

6、在springboot的helloworld项目中的application.properties配置文件中配置以下信息,同时将刚生成的server.key.p12文件放到resources目录下,启动项目

 server.port=8080server.ssl.key-store=classpath:server.key.p12server.ssl.key-store-password=dzm123server.ssl.key-alias=serverserver.ssl.keyStoreType=JKS


http://www.taodudu.cc/news/show-5190521.html

相关文章:

  • OpenSSL命令大全,CA证书生成,客户端证书生成实例
  • PHP获取SSL客户端证书信息
  • 通过url地址批量打包zip下载文件
  • 数字信号处理课程资料下载
  • 计算机网络实验教程钱德沛_计算机网络实验
  • PHP面试新题
  • 第一视频欲打造国内最大的手机广告平台 MOBUS正式推出
  • 全球手机用户破50亿 手机游戏或成“大戏”
  • 2005年数据库系统工程师真题(下午)
  • 移动互联网广告市场的机会在哪里?
  • GPRS技术
  • [转]通信物理层好书推荐
  • 中国没概念:被看好时是泡沫 不被看好时成垃圾
  • 亚太经济合作组织
  • 计算机网络实验教程钱德沛_北航研究生计算机网络实验_实验二 数据链路层实验...
  • 计算机网络实验教程钱德沛_《计算机网络实验教程-第2版》【价格 目录 书评 正版】_中国图书网...
  • Hadoop Java HotSpot(TM) Client VM warning: You have loaded library /
  • 团队项目用户调查报告
  • 计算机影响我们生活的调查报告,《计算机对大学生日常生活的带来影响》调查报告word模板.doc...
  • 伽马分布,指数分布,卡方分布三者关系
  • shineblink Core1602LCD显示
  • C51的1602LCD液晶显示
  • 超声波测距模块(1602LCD显示)—基于51单片机
  • python arduino i2c1602_Arduino通过I2C控制1602LCD显示屏
  • LCD1602说明
  • 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD
  • 1602LCD液晶显示
  • python arduino i2c1602_Arduino基础入门—3.连接 IIC 1602 LCD显示文字
  • 多个联盟广告调用代码,这样做可以做到打开页面,随机显示一个联盟广告代码
  • linux怎么卸载字体,一般而言,如何从libreoffice和linux中删除从未使用过的字体?...

SpringBoot的SSL个人CA签发二级证书(动态添加客户端证书)相关推荐

  1. java https 验证客户端证书_Java HTTPS客户端证书认证

    小编典典 终于设法解决了所有问题,所以我会回答我自己的问题.这些是我用来解决特定问题的设置/文件: 该客户端的密钥库是一个PKCS#12格式文件包含 客户端的公共证书(在这种情况下,由自签名CA签名) ...

  2. iis 使用服务器端证书和客户端证书及访问客户端证书信息

    说明:需要先安装"Active Directory证书服务",Windows Server2008R2 在添加角色中选择该"Active Directory证书服务&qu ...

  3. 如何解决实际错误:配置IIS使其支持SSL加密的HTTPS,并且要求浏览器客户端证书

    原文:http://www.cnblogs.com/dosboy/archive/2013/02/18/2915269.html 在配置IIS的HTTPS和IE客户端的证书时,我们经常出错,本文就是通 ...

  4. OpenSSL命令大全,CA证书生成,客户端证书生成实例

    1.X509证书链 x509证书一般会用到三类文件,key,csr,crt. Key是私用密钥,openssl格式,通常是rsa算法. csr是证书请求文件,用于申请证书.在制作csr文件的时候,必须 ...

  5. OpenSSL自建CA和签发二级CA及颁发SSL证书

    自己签发CA证书再签发服务器证书的场景非常简单.把根CA证书导入到浏览器后,就可以信任由这个根CA直接签发的服务器证书. 但是实际上网站使用的证书肯定都不是由根CA直接签发的,比如 像百度这种,网站使 ...

  6. ssl 客户端证书验证_SSL客户端身份验证:这是信任的问题

    ssl 客户端证书验证 [编者注:本文介绍了如何为Domino 4.6和4.6.1设置SSL客户机认证.] 互联网上最新的行业流行词是SSL. 但是SSL真正需要提供什么? 安全套接字层(SSL)是一 ...

  7. Sap Byd Soap使用 SSL 客户端证书

    1.修改通讯安排为使用SSL客户端证书 2.设置客户端证书 上传证书,或者上传并下载证书 3.用SoapUI 测试系统 选择下载来的证书,或者自己创建的通讯证书,并输入密码 配置好后就可以测试系统了 ...

  8. k8s kubernetes-dashboard 免密+客户端证书登录

    下文为记录 kubernetes-dashboard 如何实现免密且通过客户端证书直接登录 Nginx在配置443 服务端证书时,同时配置客户端证书,实现双向认证 server {listen 443 ...

  9. Https环境将key秘钥和crt格式证书转成cer证书

    1.去除秘钥*.key的加密保护: openssl genrsa -des3 -out ca.key 4096#CA证书用于签署客户端证书 openssl req -new -x509 -days 3 ...

最新文章

  1. Linux常见命令(五)——rmdir
  2. Js实现类似PHP中的in_array方法
  3. 2139=数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
  4. C#LeetCode刷题之#415-字符串相加(Add Strings)
  5. 检测到你的手机处于root环境_玩手游多开还在用模拟器?云手机了解一下
  6. 如何在pe里加载阵列卡驱动_PE中RAID卡驱动的添加办法
  7. 冠层、叶片和光系统尺度的日光诱导叶绿素荧光SIF模拟的辐射传输模型:SCOPE模型介绍
  8. 西门子界面官方精美触摸屏+WINCC程序模板 西门子官方触摸屏程序模板,炫酷的扁平式动画效果
  9. 楚门的世界/The Truman Show (1998)
  10. MQTT设置retained的作用
  11. java se运行环境_Java运行环境Java SE Runtime Environment (JRE) 下载
  12. 最新MTK芯片型号汇总,MTK开发资料大全下载
  13. PPT双屏,设置主屏
  14. Sloan中性群落模型(NCM)推断群落构建原理及其R实现
  15. 服务器维护 藏宝阁交易,梦幻西游藏宝阁角色交易条件,藏宝阁买角色多久可以交易角色...
  16. qt android 悬浮窗,Qt 自定义悬浮窗(类似QQ拼音输入法)
  17. eplan 电箱布局_EplanD布局步骤
  18. c 语言一个参数是他所有结果的总和,C Primer Plus 第六章 复习题编程练习 答案...
  19. div水平居中的两种方法
  20. 智能视频分析技术及应用扫盲

热门文章

  1. emeditor正则表达式_EmEditor 正则表达式使用实例教程
  2. 走在时代的前端:WiFi共享精灵
  3. python学习历程之----基础篇(五)
  4. 分享2022流畅运行Solidworks的电脑配置清单
  5. 【Tips】OmniFocus 3 (3.1.1) 许可证
  6. sqlmap注入教程linux,Linux Sqlmap检测sql注入漏洞工具安装使用教程
  7. 记录点小工具,以备不时之需吧
  8. Aandroid截屏遇到SurfaceView
  9. Windows远程桌面连接操作另一电脑上的PyCharm无法编缉的解决办法
  10. 跨域问题 cros错误