`
lukejin
  • 浏览: 366120 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

导出keystore私钥新法

    博客分类:
  • Java
阅读更多

昨天为了导出私钥,找到了这个工具。见附件。

 

使用说明:

 

 

Java KeyStore文件转换为微软的.pfx文件和OpenSSL的PEM格式文件(.key + .crt)

 

运行方式:

 

JKS2PFX <KeyStore文件> <KeyStore密码> <Alias别名> <导出文件名> [Java Runtime的目录]
 

 

Java Runtime的目录,指包含Java.exe和keytool.exe的目录,如:

c:\progra~1\Java\jre1.5.0_06\bin

 

例如:

 

JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin
4
1
分享到:
评论
5 楼 xiangguiwang 2016-06-01  
非常给力!

      致敬
4 楼 a418040445 2012-02-20  
搞定了。LZ 密钥库密码和私钥密码 要一样才行,不然会报错的,查了我好久啊,哎。。
3 楼 a418040445 2012-02-20  
JKS2PFX  没有这个命令啊!!
2 楼 boreas_baosj 2010-07-29  
生成的时候报错了  在C#中利用WSE3.0调用java的web服务时c#客户端  出现了异常:
对象只包含密钥对中的公钥。必须同时提供私钥。
未处理 System.Security.Cryptography.CryptographicException
  Message="对象只包含密钥对中的公钥。必须同时提供私钥。"
  Source="mscorlib"
  StackTrace:
       在 System.Security.Cryptography.RSACryptoServiceProvider.SignHash(Byte[] rgbHash, String str)
       在 Microsoft.Web.Services3.Security.Cryptography.RSASHA1SignatureFormatter.SignHash(Byte[] rgbHash)
       在 Microsoft.Web.Services3.Security.Cryptography.RSASHA1SignatureFormatter.Sign(Stream data)
       在 Microsoft.Web.Services3.Security.MessageSignature.BuildSignedInfo(SignatureFormatter formatter)
       在 Microsoft.Web.Services3.Security.MessageSignature.ComputeAsymmetricSignature(AsymmetricKeyAlgorithm key)
       在 Microsoft.Web.Services3.Security.MessageSignature.ComputeSignature()
       在 Microsoft.Web.Services3.Security.Security.SerializeXml(SoapEnvelope document)
       在 Microsoft.Web.Services3.Security.Security.Execute(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Security.SendSecurityFilter.ProcessMessage(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Pipeline.ProcessOutputMessage(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Messaging.SoapSender.FilterMessage(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Messaging.SoapSender.BeginSend(SoapEnvelope envelope, AsyncCallback callback, Object state)
       在 Microsoft.Web.Services3.Messaging.SoapClient.BeginSendOneWay(String methodname, SoapEnvelope envelope, AsyncCallback callback, Object state)
       在 Microsoft.Web.Services3.Messaging.SoapClient.SoapClientAsyncResult..ctor(SoapClient client, String methodname, SoapEnvelope envelope, AsyncCallback callback, Object state)
       在 Microsoft.Web.Services3.Messaging.SoapClient.SendRequestResponse(String methodname, SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Security.SecurityTokenServiceClient.RequestSecurityToken(SecurityTokenMessage request, String methodName)
       在 Microsoft.Web.Services3.Security.SecurityContextTokenServiceClient.RequestSecurityContextToken(AppliesTo appliesTo)
       在 Microsoft.Web.Services3.Security.SecurityContextTokenServiceClient.IssueSecurityContextToken(AppliesTo appliesTo)
       在 Microsoft.Web.Services3.Security.Tokens.SecurityContextTokenManager.RequestTokenFromIssuer(EndpointReference tokenIssuer, String tokenType, AppliesTo appliesTo, Policy policy, SoapProtocolVersion soapVersion, StateManager messageState, StateManager operationState, StateManager sessionState)
       在 Microsoft.Web.Services3.Security.SecureConversationClientSendSecurityFilter.EstablishSecureConversation(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Security.SecureConversationClientSendSecurityFilter.SecureMessage(SoapEnvelope envelope, Security security)
       在 Microsoft.Web.Services3.Security.SendSecurityFilter.ProcessMessage(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Pipeline.ProcessOutputMessage(SoapEnvelope envelope)
       在 Microsoft.Web.Services3.Xml.SoapEnvelopeWriter.Finish()
       在 Microsoft.Web.Services3.Xml.XmlWrappingWriter.Flush()
       在 System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message)
       在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       在 ZisImplService.saveDataForJson(String softwareName, String jsonData) 位置 D:\C#\ZisClient\ZisClient\ZisImplService.cs:行号 102
       在 ZisClient.Form1.button1_Click(Object sender, EventArgs e) 位置 D:\C#\ZisClient\ZisClient\Form1.cs:行号 22
       在 System.Windows.Forms.Control.OnClick(EventArgs e)
       在 System.Windows.Forms.Button.OnClick(EventArgs e)
       在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       在 System.Windows.Forms.Control.WndProc(Message& m)
       在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
       在 System.Windows.Forms.Button.WndProc(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       在 System.Windows.Forms.Application.Run(Form mainForm)
       在 ZisClient.Program.Main() 位置 D:\C#\ZisClient\ZisClient\Program.cs:行号 17
       在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       在 System.Threading.ThreadHelper.ThreadStart()
1 楼 boreas_baosj 2010-07-29  
D:\jks2pfx>JKS2PFX clientKeystore.jks cs888888 myclientkey zisClientn C:\Progr
Files\Java\jre1.6.0_07\bin
Exception in thread "main" java.lang.NoClassDefFoundError: ExportPrvKey
Caused by: java.lang.ClassNotFoundException: ExportPrvKey
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Generating new PFX Key/Certificate pair, please enter a password
Loading 'screen' into random state - done
unable to load private key
Created new PEM key  : zisClientn.key  (without password)
Created new PEM cert : zisClientn.crt
Created new PFX file : zisClientn.pfx  (with password)

相关推荐

    KeyStore私钥及证书导出,可命令行直接用[2013-11]

    标题中的"KeyStore私钥及证书导出,可命令行直接用[2013-11]"指的是一项关于Java KeyStore操作的技术,重点在于如何在命令行环境下导出私钥和证书。KeyStore是Java提供的一种安全服务,用于存储用户的数字证书、私钥...

    导出JVM KeyStore中私钥的Java程序

    本文将详细讲解如何使用Java程序导出JVM KeyStore中的私钥,以及这个过程在配置SSL(Secure Sockets Layer)时的作用。 首先,我们需要了解Java KeyStore的基本概念。KeyStore是一个安全存储库,它包含了公钥、私钥...

    java keystore导出.pfx .key .crt 私钥

    本主题将详细解释如何从Java Keystore导出`.pfx`、`.key`和`.crt`文件,这些都是在网络安全中常见的证书格式。 首先,`.pfx`(Personal Information Exchange)文件是一种包含证书和私钥的二进制文件,广泛用于...

    Android中使用命令查看keystore的公钥和私钥

    Android中使用命令查看keystore的公钥和私钥,准备好keystore文件后按文档中操作即可获得keystore的公钥和私钥。

    keystore_export导出密钥工具

    【keystore_export导出密钥工具】是一款基于Java编写的实用程序,专为方便开发者和系统管理员导出由keytool生成的keystore文件中的私钥和证书。keytool是Java SDK自带的一个命令行工具,用于管理数字证书和密钥对,...

    PFX软证书(私钥证书)下载及导出方法(请务必交给商户技术部门处理)

    5. 在导出向导中,选择“是,导出私钥”,因为私钥是证书的核心,不能丢失。 6. 不要勾选任何额外的复选框,如“包含证书路径中的所有证书”或“删除私钥的策略信息”,这可能会导致不必要的安全风险。 7. 设置一...

    kse-543.dmg keystore-explorer: 5.4.3

    广泛的格式支持KeyStore Explorer支持多种KeyStore,密钥对,私钥和证书格式,并可在它们之间进行转换。请参阅功能,以获取受支持格式的列表。 CA的基本功能KeyStore Explorer可以用于创建自己的CA证书并使用它签名...

    对密钥,密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx

    在 Java 程序中,可以使用 jks 文件来存储公钥和私钥,并使用 keytool.exe 工具来查看、导入、导出和删除密钥。对于 HTTPS 网站,可以使用 jks 文件来存储站方公钥,以便Java程序可以正常访问该网站。 密钥、密钥对...

    keystore转x509.pem、pk8工具,兼容windows、linux

    它将keystore中的私钥导出为pk8格式,然后使用openssl工具将pk8和公钥证书转换为x509.pem格式。 对于Linux或Unix用户,keystore2pem.sh的工作原理相似,但可能需要先确保openssl工具已经安装。运行脚本时,同样需要...

    RSA生成公钥私钥和使用公钥私钥加密解密demo

    在Android中,由于存在默认的安全限制,可能需要配置`android.security.keystore`系统服务来存储和使用密钥。 6. **类说明**: 提供的工具类可能包含了如下的方法: - `generateKeyPair()`: 生成RSA密钥对。 - `...

    portecle keystore制作工具

    - **导入/导出**:可以导入已有的Keystore文件,或者将Keystore内容导出为其他格式。 - **生成密钥对**:在Keystore中生成RSA、DSA等类型的密钥对,用于SSL/TLS加密。 - **管理证书**:添加、删除或更新Keystore...

    KeyStore Explorer.zip

    在文件中,可能涵盖了如何启动安装程序(kse-540-setup.exe),创建新的KeyStore,导入或导出证书,设置密钥密码,以及将生成的密钥对配置到服务器的SSL配置文件中等内容。 在实际操作中,创建SSL证书通常包括以下...

    PFX格式证书和JAVA keyStore证书相互转换

    java 生成的有私钥的证书导入IE,或者把IE导出的证书导入java的KeyStore

    java-exportpriv.zip

    Java ExportPriv是一个专门为Java开发者设计的开源工具,其主要功能是导出Java Secure Socket Extension (JSSE) Keystore中的私钥。在Java安全框架中,Keystore是一个存储证书、私钥和其他安全凭证的地方,通常用于...

    keystore秘钥文件

    - **导入/导出**:可以使用`keytool`将证书导入到`keystore`,或将`keystore`中的密钥对导出为单独的文件。 - **更新**:如果需要更改`keystore`中的信息,如更新密钥口令或添加新的密钥对,也可以通过`keytool`...

    打包的keystore备份

    `keystore`文件是一个存储证书和私钥的安全容器。在Android中,每个应用都需要被一个唯一的数字签名,以便系统可以验证应用的身份和来源。`apk_keystore.jks`就是这样的一个签名文件,它包含了用于签署APK的公钥和...

    Android签名文件jks和keystore相互装换.zip

    这两者在本质上都是存储密钥对(公钥和私钥)的容器,但它们在某些情况下可能会有所不同。本教程将详细讲解如何在JKS和Keystore文件之间进行转换,以及如何在命令行中执行这些操作。 首先,我们需要理解JKS和...

    Android API之KeyStore 测试源代码

    在Android平台上,KeyStore系统是安全存储敏感信息如私钥、证书等的重要工具。它允许开发者在设备上安全地管理加密密钥,确保只有授权的应用程序可以访问这些关键数据。KeyStore不仅支持对称加密密钥,也支持非对称...

    keystore_oracle_

    Keystore是存储数字证书和私钥的安全容器,对于保护数据库连接和数据传输的安全至关重要。 在Oracle数据库中,Keystore管理涉及创建、导入和管理SSL(Secure Socket Layer)证书,这些证书用于加密数据库的网络通信...

Global site tag (gtag.js) - Google Analytics