方法一:

1.先用keytool导出pfx文件。第一个123456是jks密码,后边两个是新生成的pfx的密码

keytool -v -importkeystore -srckeystore D:\\fuwuqi.jks -srcstoretype jks -srcstorepass 123456 -destkeystore D:\\fuwuqi.pfx -deststoretype pkcs12 -deststorepass 123456 -destkeypass 123456

2.用ssl导出key文件

openssl pkcs12 -in fuwuqi.pfx -nocerts -nodes -out fuwuqi.key

方法二:

代码生成

package com.acca.dovepay.nucc.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate; import sun.misc.BASE64Encoder; public class CertUtil { private File keystoreFile; private String keyStoreType; private char[] password; private String alias; private File exportedFile; public KeyPair getPrivateKey(KeyStore keystore, String alias,
char[] password) { try { Key key = keystore.getKey(alias, password); if (key instanceof PrivateKey) { Certificate cert = keystore.getCertificate(alias); PublicKey publicKey = cert.getPublicKey(); return new KeyPair(publicKey, (PrivateKey) key); } } catch (UnrecoverableKeyException e) { } catch (NoSuchAlgorithmException e) { } catch (KeyStoreException e) { } return null; } public void export() throws Exception { KeyStore keystore = KeyStore.getInstance(keyStoreType); BASE64Encoder encoder = new BASE64Encoder(); keystore.load(new FileInputStream(keystoreFile), password); KeyPair keyPair = getPrivateKey(keystore, alias, password); PrivateKey privateKey = keyPair.getPrivate(); String encoded = encoder.encode(privateKey.getEncoded()); FileWriter fw = new FileWriter(exportedFile); fw.write("----BEGIN PRIVATE KEY----\n"); fw.write(encoded); fw.write("\n"); fw.write("----END PRIVATE KEY----\n"); Certificate cert = keystore.getCertificate(alias); PublicKey publicKey = cert.getPublicKey(); String encoded2 = encoder.encode(publicKey.getEncoded()); fw.write("----BEGIN CERTIFICATE----\n"); fw.write(encoded2); fw.write("\n"); fw.write("----END CERTIFICATE----\n"); fw.close(); } public static void main(String args[]) throws Exception { CertUtil export = new CertUtil(); export.keystoreFile = new File("D:\\20181120fuwuqi.jks"); export.keyStoreType = "JKS"; export.password = "123456".toCharArray(); export.alias = "mykey"; export.exportedFile = new File("D:\\SSS.key"); export.export();
}
}

另crt文件的生成,转载https://jingyan.baidu.com/article/154b463178eac928ca8f41a9.html?qq-pf-to=pcqq.c2c

tomcat的jks的私钥导出nginx需要的key文件的更多相关文章

  1. Nginx证书配置:tomcat证书jks文件转nginx证书.cet和key文件

    Nginx证书配置:tomcat证书jks文件转nginx证书.cet和key文件1.查看jks文件中的entry. keytool -list -keystore server.jks Enter ...

  2. tomcat单机多应用部署配合Nginx负载均衡

    一.Windows 配置tomcat . 安装两个tomcat服务器以上 . 配置环境变量 CATALINA_BASE:D:\servers\Tomcat8 CATALINA_HOME:D:\serv ...

  3. IOS证书/私钥/代码签名/描述文件

    1.   相关资源 (1)   钥匙串程序(常用工具->钥匙串),用于创建证书请求.安装证书.导出私钥等 (2)   IOS开发中心:https://developer.apple.com/de ...

  4. nginx上传大文件,413错误解决

    在nginx里增加了配置. client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_se ...

  5. nginx跨域设置&文件上传大小限制

    在部署项目的时候碰到这么一个问题:XMLHttpRequest cannot load,下面阐述一下这个问题 问题背景: 用nginx+tomcat部署项目.tomcat用的8080端口,nginx用 ...

  6. Nginx 限制上传文件的大小。responded with a status of 413 (Request Entity Too Large)

    # 限制请求体的大小,若超过所设定的大小,返回413错误. client_max_body_size 50m; # 读取请求头的超时时间,若超过所设定的大小,返回408错误. client_heade ...

  7. MySQL如何导出带日期格式的文件

    一网友问在MySQL中如何只用SQL语句导出带日期格式的文件.觉得有点意思,于是尝试了一下.导出文件使用SELECT INTO OUTFILE 但是OUTFILE后面的值不能使用变量,所以只能使用动态 ...

  8. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  9. 关于用Max导出Unity3D使用的FBX文件流程注解

    原地址:http://hi.baidu.com/phpstyle/item/c167a4c0694670b10d0a7b87 关于用Max导出Unity3D使用的FBX文件流程注解(转载) (2011 ...

随机推荐

  1. ES6 扩展运算符 三点(...)

    含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[, , ]) // 1 2 3 conso ...

  2. 【HTML5】HTML5中video元素事件详解(实时监测当前播放时间)

    html 代码..video后边几个元素,可处理ios 系统的兼容性 <video id="myVideo" controls="controls" po ...

  3. js 注意

    1.如果想要动态加清除浮动的代码,可以这样做: document.getElementById("mainBody").innerHTML += "<div sty ...

  4. yum安装mysql-5.6(centos7)

    centos 7.3 安装mysql 5.6 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yu ...

  5. [qemu] qemu从源码编译安装

    环境:CentOS7-1804 下载最新的源码: ┬─[tong@T7:~/Src/thirdparty/PACKAGES]─[:: AM] ╰─>$ axel https://download ...

  6. odoo配置文件内容详解

    odoo常用openerp-server.conf配置参数详解 参数 说明 用法 addons_path addons模块的查找路径,多个路径用逗号分隔 addons_path = E:\GreenO ...

  7. 万能的DBHelper帮助类

    DBHelper类: 简单的理解就是一个工具箱,我要用锤子的时候就在里面拿,我要用剪刀的时候也可以在里面拿,前提是我们写的DBHelper够不够强大! 软件中的四大功能:增.删.改.查  我们要实现这 ...

  8. WebDriver与文件系统

    1.屏幕截屏操作:其接口函数是TakesScreenshot.该功能是在运行测试用例的过程中,需要验证某个元素的状态或者显示的数值时,可以将屏幕截取下来进行对比:或者在异常或者错误发生的时候将屏幕截取 ...

  9. Vue脚手架使用步骤 2.9.6版本

    转载自:https://blog.csdn.net/sky_LQ/article/details/80729547 Vue脚手架使用步骤 2018年06月19日 12:10:35 sky_LQ 阅读数 ...

  10. Python返回多个值

    def get_abc(): a = 1 b = 2 c = 3 return a,b,c temp = get_abc() #temp = (1,2,3) a,b,c = get_abc() #a ...