https证书识别和转换

2023-05-16

1.证书识别:

安全证书如下:

-----BEGIN CERTIFICATE----- ... ... ... -----END CERTIFICATE-----
普通私钥如下:

-----BEGIN PRIVATE KEY----- ... ... ... -----END PRIVATE KEY-----
RSA 私钥如下:

-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY-----
一般使用安全证书和 RSA 私钥,普通私钥需要转化为 RSA 私钥。

2.含有私钥和公钥的证书转换为keystore

最近接触的项目中用到HTTPS,并且申请了证书以及私钥,这一块接触的少 先整理出来,谨防以后忘记。因为是tomcat中配置的https,需要将证书转成keystore文件,通过openssl 先通过证书以及私钥文件生成p12证书,再通过JAVA的keytool 生成keystore文件

  1. 准备工作:上传证书和rsa私钥的key
  2. 申请的证书有证书链,可以右键以文本打开,把证书里的内容按从下至上的顺序复制到一个新建的文件里allinone.cer
  3. 将allinone.cer和payment.private.key上传至服务器当中
  4. 敲入以下命令,过程中会需要你输入两遍password,需要记住。输入完吼将会生成p12,具体参数命令可以自行百度,不过这个字面意思已经很直白了,就不做叙述

openssl pkcs12 -export -in /root/allinone.cer -inkey /root/payment.private.key -out /root/projectX.p12

通过上面步骤的命令,我们再将projectX.p12文件转为keystore

keytool -importkeystore -v  -srckeystore /root/projectX.p12 -srcstoretype pkcs12 -srcstorepass changeit(p12刚输入的密码) -destkeystore /root/payment.keystore -deststoretype jks -deststorepass changeit(keystore密钥库的密码)

  • 开始配置tomcat,编辑 $TOMCAT_HOME/conf/server.xml
  • 找到https相关的配置,注意区分keystoreFile keystorePass大小写,否则会不生效,并且会提示找不到文件或者密码错误相关提示
  • ps:p12的密码好像需要跟keystore密码一致,否则会报错,不知道是不是哪个环节出了问题

<Executor name="tomcatThreadPoolHttps" namePrefix="catalina-exec-https-" maxThreads="6000" minSpareThreads="100" maxIdleTime="120000" />

<Connector executor="tomcatThreadPoolHttps" port="8443" redirctPort="6064" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxHttpHeaderSize="8192" acceptCount="1000" enableLookups="false" scheme="https" secure="true"keystoreFile="/root/payment.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLSv1.2" />

3.其他类型证书转换

3.1  cer或者crt转jks

keytool -import -trustcacerts -alias 别名名字 -file 证书名字.cer -keystore 导出证书名字.jks

keytool -import -trustcacerts -alias 别名名字,随便取 -file 证书名字.crt -keystore test2.jks

 

3.2  cer+pem 转jks

openssl pkcs12 -export -in CsssssD.cer(证书) -inkey UUUUUU.pem(private key) -out ./testP12.p12

keytool -importkeystore -v -srckeystore testP12.p12 -srcstoretype pkcs12 -srcstorepass password(密码) -destkeystore server.jks -deststoretype jks -deststorepass password(密码)

4.其他说明: 


loadKeyMaterial()重载方法是加载客户端证书用的
loadTrustMaterial()重载方法是加载服务器端相关信息用的(我们就是使用 loadTrustMaterial(TrustStrategy trustStrategy) 方法自己实现了一个信任策略,不对服务器端的证书进行校验),

在生成HttpClient的时候,指定相应的 SSLSocketFactory,之后,使用这个HttpClient发送的GET请求和POST请求就自动地附加上了证书信息

如果我们只需要忽略掉对服务器端证书的验证,而不需要发送客户端证书信息,在构建SSLContext的时候,只需要 loadTrustMaterial() 不需要 loadKeyMaterial()  
                SSLContext sslcontext = SSLContexts.custom()
                //忽略掉对服务器端证书的校验
                .loadTrustMaterial(new TrustStrategy() {
                    @Override
                    public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                        return true;
                    }
                })
                
                //加载服务端提供的truststore(如果服务器提供truststore的话就不用忽略对服务器端证书的校验了)
                //.loadTrustMaterial(new File("D:\\truststore.jks"), "123456".toCharArray(),
                //        new TrustSelfSignedStrategy())
                .loadKeyMaterial(keyStore, "cmcc".toCharArray())
                .build();
        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
                sslcontext,
                new String[]{"TLSv1"},
                null,
                SSLConnectionSocketFactory.getDefaultHostnameVerifier());
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(sslConnectionSocketFactory)
                .build();

借鉴:https://www.cnblogs.com/jiaoyiping/p/5469660.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

https证书识别和转换 的相关文章

随机推荐

  • 层次Softmax相关论文整理

    Softmax函数是逻辑函数的一种推广 xff0c 广泛应用于神经网络的多分类问题中 xff0c 然而其计算复杂度与类别大小呈线性关系 xff0c 在应用于语言模型 机器翻译时会带来高额的计算量 xff0c 故而不少研究尝试寻找其高效的近似
  • Cas单点登录(6)Cas Client配置

    1 新建项目 新建javaEE项目CasClient xff0c 添加jar包cas client core 3 2 1 jar 2 修改web xml 向javaEE项目的WEB INF web xml添加以下代码 span class
  • VMware导入vmdk文件

    场景 从别的地方拷贝了一个系统镜像 后缀是vmdk格式 现在演示如何导入到本地 操作步骤 打开vmware 点击文件 新建虚拟机
  • Android手机投屏win10

    Android手机投屏win10 win10 操作系统win10 投影到此电脑win10 选择所有位置都可用win10 记住你的win10名称Android 更多连接方式Android 无线显示Android 开启无线显示win10 连接成
  • Linux系统下查看版本信息

    查看Linux内核版本命令 xff08 两种方法 xff09 xff1a 1 cat proc version 显示正在运行的内核版本 root 64 S CentOS home cat proc version Linux version
  • 多幅TM影像的处理技术总结

    本次以Landsat5 的数据为例 处理目标 xff1a 得到一个452千公顷区域的15m TM影像图 xff08 一共由7幅TM影响组成 xff09 参照本方法时 xff1a 具体方法建议参照书 议参照 ENVI 遥感图像处理方法 邓书斌
  • Ureport2小计和合计功能

    原报表样式如下 xff1a 我们希望根据做小计和合计功能 xff0c 希望实现的报表结果如下 xff1a 第一步 xff1a 先按要求设计如下报表 xff1a 此处主要说明三个sum C1 的配置 xff0c 基础配置不在复述 xff0c
  • Ureport2错行分组问题

    错行分组报表样例为 xff1a 表格设计为 xff1a 此处着重说明B2父格配置 如果按照样例进行报表设计 xff0c 但是没有对B2进行父格设置 xff0c 那么报表的展示效果为 xff1a 会发现 xff0c 报表只是罗列完A1值后再罗
  • Ureport2多表关联示例

    如图 xff1a A1与B1分别取自不同表的数据 如果此时进行数据预览 xff0c 则有 xff1a 由此可知 xff0c 如果没有建立关联关系 xff0c 那么A1每一条记录分别匹配B1的所有记录 建立关联关系 xff1a 此处操作符为什
  • Linux操作:通过xshell直接从Linux下载文件到本地

    本文主要介绍通过xshell直接下载文件到本地而不依赖xftp的方式 第一步 xff1a 在xshell中获取文件路径 到需要下载的文件所在的目录输入命令 xff1a pwd 会返回当前目录的路径 xff0c 复制该路径 xff0c 并在末
  • Java下载文件,中文名乱码(attachment;filename=中文文件名)

    问题 下载文件 xff0c 文件名乱码 xff1a 尝试更改字符集 xff1a utf 8 xff0c gbk等都试过 xff0c 就是不行 本地查看response返回 解决方法 response addHeader 34 Content
  • centos7 防火墙开启 (重点)

    常用命令说明 1 通过systemctl status firewalld查看firewalld状态 xff0c 发现当前是dead状态 xff0c 即防火墙未开启 2 通过systemctl start firewalld开启防火墙 xf
  • VMware安装win7后,安装VMware Tools时报错——安装程序无法继续。本程序需要您将此虚拟机上安装的操作系统更新到SP1

    具体报错 xff1a 解决方案一 xff1a 重新更换镜像源 倘若你用的是这样的镜像 xff1a cn windows 7 enterprise x64 dvd x15 70741 iso 换镜像源 换镜像源 换镜像源 xff01 换成带s
  • MySQL字符串拼接的两种方式

    第一种 xff1a MySQL自带语法Concat string1 string2 string3 xff0c 此处是直接把string1和string2等等的字符串拼接起来 xff08 无缝拼接哦 xff09 说明 xff1a 此方法在拼
  • 前端传来的参数后端无法正确接收

    问题 xff1a 今天和前端进行接口联调 xff0c 前端传来的参数如下 xff1a trSpeBadWeatherAttention linkId 34 S32 34 badWeatherType 34 0 34 simulationDa
  • 音乐——时间煮雨

    歌手 xff1a 郁可唯 作词 郭敬明 落落 作曲 刘大江 武部聡志 编曲 黄毅 风吹雨成花 时间追不上白马 你年少掌心的梦话 依然紧握着吗 云翻涌成夏 眼泪被岁月蒸发 这条路上的你我她 有谁迷路了吗 我们说好不分离 要一直一直在一起 就算
  • 物理机安装 Ubuntu18.04 + CUDA + Anaconda (简明图文教程)

    安装过程 xff08 1 xff09 安装 Ubuntu1 1 安装 ultraiso1 2 下载 ubuntu 18 4 系统1 3 制作U盘启动盘1 4 安装操作1 5 磁盘格式化和挂载 xff08 2 xff09 安装 CUDA 环境
  • WinForm界面开发教程——图文并茂的界面设计

    DevExpress WinForm v20 2完整版下载 DevExpress技术交流群3 xff1a 700924826 欢迎一起进群讨论 DevExpress WinForms拥有180 43 组件和UI库 xff0c 能为Windo
  • jdk8——字符串数组按照指定要求分组后取最大值

    要求 xff1a 如下月份数据 xff1a 34 20220901 34 34 20220912 34 34 20220923 34 34 20220929 34 34 20221010 34 34 20221101 34 34 20221
  • https证书识别和转换

    1 证书识别 xff1a 安全证书如下 xff1a BEGIN CERTIFICATE END CERTIFICATE 普通私钥如下 xff1a BEGIN PRIVATE KEY END PRIVATE KEY RSA 私钥如下 xff1