A. 证书.PFX , .cer或crt , .key , .jks 通过什么指令进行互相转换
常见证书格式及相互转换
PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:
PKCS#7 Cryptographic Message Syntax Standard
PKCS#10 Certification Request Standard
PKCS#12 Personal Information Exchange Syntax Standard
X.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。
PKCS#7 常用的后缀是: .P7B .P7C .SPC
PKCS#12 常用的后缀有: .P12 .PFX
X.509 DER 编码(ASCII)的后缀是: .DER .CER .CRT
X.509 PAM 编码(Base64)的后缀是: .PEM .CER .CRT
.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
—————-
小美注:
der,cer文件一般是二进制格式的,只放证书,不含私钥
crt文件可能是二进制的,也可能是文本格式的,应该以文本格式居多,功能同der/cer
pem文件一般是文本格式的,可以放证书或者私钥,或者两者都有
pem如果只含私钥的话,一般用.key扩展名,而且可以有密码保护
pfx,p12文件是二进制格式,同时含私钥和证书,通常有保护密码
怎么判断是文本格式还是二进制?用记事本打开,如果是规则的数字字母,如
—–BEGIN CERTIFICATE—–
//a3VIcDjANBgkqhkiG9w0BAQUFADBy
—–END CERTIFICATE—–
就是文本的,上面的BEGIN CERTIFICATE,说明这是一个证书
如果是—–BEGIN RSA PRIVATE KEY—–,说明这是一个私钥
文本格式的私钥,也可能有密码保护
文本格式怎么变成二进制? 从程序角度来说,去掉前后的—-行,剩下的去掉回车,用base64解码,就得到二进制了
不过一般都用命令行openssl完成这个工作
—————
一 用openssl创建CA证书的RSA密钥(PEM格式):
openssl genrsa -des3 -out ca.key 1024
二用openssl创建CA证书(PEM格式,假如有效期为一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
openssl是可以生成DER格式的CA证书的,最好用IE将PEM格式的CA证书转换成DER格式的CA证书。
三 x509到pfx
pkcs12 -export –in keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx
四 PEM格式的ca.key转换为Microsoft可以识别的pvk格式。
pvk -in ca.key -out ca.pvk -nocrypt -topvk
五 PKCS#12 到 PEM 的转换
openssl pkcs12 -nocerts -nodes -in cert.p12 -out privatekey.pem
openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem
openssl pkcs12 -nodes -in ./cert.p12 -out ./cert_key.pem
六 从 PFX 格式文件中提取私钥格式文件 (.key)
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
七 转换 pem 到到 spc
openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc
用 -outform -inform 指定 DER 还是 PAM 格式。例如:
openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER
八 PEM 到 PKCS#12 的转换,
openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem
九 cer 到 pem
openssl x509 -in aps_developer.cer -inform DER -out aps_developer.pem -outform PEM
十 der 到 pem
der和cer是一样的,如果openssl x509不能load证书,报如下错:
unable to load certificate
就说明不是一个证书,用下面的命令试一下,因为der也可能是一个csr转换格式后的文件:
openssl req -inform der -outform pem -in ./customer.der -out ./customer.csr
十一、密钥去掉加密(使用时不用手动输入密码)
openssl rsa -in customerPrivateKey.pem -out ./customerPrivateKey_unenrypted.pem
十二、合成证书和密钥
cat ./customerPrivateKey_unenrypted.pem ./mdm_push_cert.pem > merger2.pem
B. 如何将证书字符串转换为X509结构
(1)Openssl生成公私钥
使用Openssl是为了生成公钥和私钥对,用于外部商户系统和xxx系统之间报文的安全性验证。如果使用者不需要生成公私钥,而是直接对报文进行处理,则参考第四部分,计算摘要及签名值。
1. 安装openssl步骤直接点击exe文件。出现需要安装vs2008插件的,直接忽略。
2. 在安装过程中找到OpenSSL相应的安装目录,进入bin目录下找到openssl.exe可执行文件,点击运行。然后分别按顺序输入如下命令:
a. genrsa –out private-rsa.key 1024
说明:该命令是生成一个没有加密的私钥
genrsa 生成私钥文件,私钥存储在private-rsa.key中,长度为1024。out后面指定输出文件名。
private-rsa.key 为生成的私钥文件,但该文件必须经过处理得到私钥。
b. req –new –x509 –key private-rsa.key –days 750 –outpublic-rsa.cer
说明:根据private-rsa.key生成证书public-rsa.cer
-new 表示新的请求
-509 表示输出的证书结构
750表示证书有效天数
-out public-rsa.cer -out后面表示公钥证书,用于验证数字签名,此公钥证书或者公钥需要提前发送给需要验证本单位或部门数据的接收方。
c. pkcs12 –export –name test-alias –in public-rsa.cer–inkey private-rsa.key –out 99bill-rsa.pfx
说明:生成PKCS12 格式Keystore
密码前后输入要一致,这个密码在用Keystore生成公私钥过程中会用到。
Public-rsa.cer, private-rsa.key是之前生成的。
附1:
下述代码是从99bill-rsa.pfx中获取私钥的Java版本代码。因为private-rsa.key中生成的私钥无法直接使用,必须进行一定的处理。
代码有几个注意点:
文件流初始化路径需要根据自己的实际路径来填写。
密码是在第二节中c步骤中的密码,本实例输入的是suning。
KeyStorekeyStore = KeyStore.getInstance("PKCS12");
= newFileInputStream("D:/OpenSSL/bin/99bill-rsa.pfx");
char[]nPassword = "suning".toCharArray();
StringkeyAlias = null;
keyStore.load(fileInputStream,nPassword);
fileInputStream.close();
System.out.println("keystoretype=" + keyStore.getType());
Enumerationenumeration = keyStore.aliases();
if(enumeration.hasMoreElements())
{
keyAlias = (String) enumeration.nextElement();
System.out.println("alias=[" + keyAlias +"]");
}
System.out.println("iskey entry=" + keyStore.isKeyEntry(keyAlias));
PrivateKeyprikey = (PrivateKey) keyStore.getKey(keyAlias, nPassword);
//私钥转成字符串
StringprivateStr = Base64.encodeBase64String(prikey.getEncoded()).trim();
//生成公钥字符串,还可以通过cer证书生成
Certificatecert = keyStore.getCertificate(keyAlias);
PublicKeypubkey = cert.getPublicKey();
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
注意:
1. 所用类的说明:
Base64:
import org.apache.commons.net.util.Base64;
Certificate:
import java.security.cert.Certificate;
2. 在openssl生成公私钥过程中,用户输入了密码。本例中密码为suning。
1. 摘要及生成方法
摘要的生成过程(digest方法全部实现了下述3个过程):
1. 根据key对传来的map数据排序;
2. 生成a1=b1&a2=b2&a3=b3形式的字符串,排除某些字符串Key值;
3. 调用digest方法进行md5编码;
以上三步均通过Digest.digest()方法实现:
String digest = Digest.digest(Map map, String... keys);
传递的http报文体body内容如a1=b1&a2=b2&a3=b3形式的字符串,提取出需要加签的字符串并转成map形式。execludeKes是要排除的字段,是一个字符串数组。
计算摘要这一步很关键,因为选取的字段要求发送方和接收方必须一致,即发送方对哪些字段计算摘要,那么同样地接收方也必须对相同的字段计算摘要,否则会报6601的错误。
说明:a. Map是存储了计算摘要的字段
b. keys表示排除的字段,不能用于计算摘要的字段,如signature,signAlgorithm
2. 公钥证书及字符串转换方法
转换的目的:便于存储。(商户直接提供公钥证书也可以,但是对于向验签系统提供公钥字符串的商户,需要用下述代码把公钥转成字符串)
1. 公钥/私钥字符串转成公钥/私钥,主要是把字符串转成公钥PublicKey
X509EncodedKeySpec pubKeySpec = newX509EncodedKeySpec(Base64.decodeBase64(strPubKey));
KeyFactorykeyFactory = KeyFactory.getInstance(RSA);
PublicKeypubKey = keyFactory.generatePublic(pubKeySpec);
2. 公钥或私钥转成Base64字符串:
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
3. 公私钥验证方法
验证目的:公私钥生成之后,需要验证是否匹配。(之前许多商户生成公私钥混乱,无法确定公私钥是否匹配就添加到验签系统中)。此代码由用户自己用junit验证运行。验证公私钥生成是否正确,如果result为true,则说明公私钥生成正确;否则生成的公私钥有问题,不能使用。
String prik1 ="";
String pubb ="";
String data ="wkk";
String digest =Digest.digest(data);
PrivateKey privateKey =RSAUtil.getPrivateKey(prik1);
String sign =RSAUtil.sign(digest, privateKey);
boolean result =RSAUtil.vertiy(digest, sign,
RSAUtil.getPublicKey(pubb));
System.out.println(result);
C. 建行网银盾更换以后怎么更换证书
呵呵,可能是银行帮我注销和重新开网银出了点问题,
网银盾
还是挂上了以前的。你去柜台要
柜员
把你的网银盾在系统里换一个就行了,不需要注销现在的网银。
D. 如何更换pmp证书
在通过PMP考试以后,每隔三年续证一次,前提是需要三年内积攒到60个PDU,也就是专业从事PM工作或学习的时长。
这60个PDU的获取,首先在拿到证书之后,每年从事项目管理工作,自动会增加5个PDU,三年就累计15个,剩下45个基本平均每年积攒15个即可。
而在积攒PDU的过程其实就是一个学习的过程,提升自己的过程,积攒PDU主要通过一些培训机构举办的大型活动、行业研讨会等,每个积攒的过程都帮助大家提升项目管理综合能力,比如流程优化、团队建设、领导力提升等。
如果到期未续证的话,证书就会过期,想要重新获取,只能重新参加考试,按照首次申请的方案,获取证书。
E. 如何更换证书
请求更换专利证书应当交回原专利证书,并缴纳手续费。
F. 怎么替换原有的过期证书
程序安装时几种有错误提示的解决办法(新手必看) 错误提示一:证书过期 问题说明:软件证书过期. 解决办法:1:把手机时间调到证书的期限内(把手机时间往前调几个月)再安装,安装完毕后调回正确时间 (调整时间的方法:设置--手机设置--常规--日期和时间--日期) 2:为软件重新签名 错误提示二:证书错误 问题说明:1.安装的软件没有签名 2.如果是JAR程序,一般是因为证书有冲突。(很多java游戏都会出这个错误提示,解决办法看下面2) 解决办法:1:为软件签名; 2:将程序(软件/游戏)直接安装到手机上或更换存储卡 错误提示三:更新错误 问题说明:一般出现这提示是因为安装软件时手机内有旧版本的相同软件没有删除,进行了重复安装。或者因为新、旧版软件安装程序标题不同引起冲突。 解决办法:1: 卸载旧版软件之后,再安装新版本软件; 2:把新版本软件解包,在PKG文档中把安装程序标题改为与旧版一致 错误提示四:证书尚未生效 问题说明:手机的时间超出软件证书的期限. 解决办法:1:检查手机的日期是否设置正确; 2:把手机时间调到证书的期限内,然后再装。在安装过后再调回正确时间即可 错误提示五:未授予所需的程序接入权限 问题说明:1.出于塞班第三版系统的安全问题,一些程序的权限被禁止使用。没有该权限的程序都无法安装,或该程序已经被签名。2.证书出错. 解决办法:1:使用未签过名的软件重新签名后再安装; 2:去掉手机证书权限限制----XX手机 错误提示六:证书受限制 问题说明:1:由软件签名出错或者软件已被多次签名引起.2:低权限证书签名了高权限程序 解决办法:1:使用未签过名的软件重新签名后再安装. 2:核实该程序所要求的证书权限,证书权限要和程序权限相匹配。(目前本论坛制作的证书权限为17项,签名19项权限的程序时有可能出现此问题) 错误提示七:无法安装不被信任的提供商提供的受保护应用程序 问题说明:有几种可能引发此问题:1.手机设置问题 2.软件没有签名或者签名不正确 3.证书冲突. 解决办法:1:进入手机的“程序管理”- “选项”-“设置”:“安装软件”设置成--全部,“在线证书检查”设置成--关; 2:将未签过名的软件重新签名后再安装; 3 :格机后再安装(注意格机前请作好备份) 错误提示八:文件受损 问题说明:安装程序文件被破坏或者不完整,有可能是在程序下载或者解时引起的文件破坏. 解决办法:请确定下载的程序文件是好的。建议再次下载(下载其他帖子里的)或解压缩程序再试。 错误提示九:无任何提示 问题说明:程序安装好后点其图标却无法运行,一般是中文文件名的JAR程序出现这种情况. 解决办法:删除掉已经安装的JAR程序,将JAR程序文件名改为全英文之后再试。 错误提示十:手机启动失败 问题说明:一般是某个程序安装失败后重启手机时出现这个提有部分是升级机器时失败导致. 解决办法:如果是某个程序安装失败,那么只需要将存储卡拿出来,然后再次启动机器。并将安装错误的程序删除掉即可。 如果是手机升级后出现,那么就只有重新格机了。需要注意的是:一些开机启动并常驻内存的软件是无法通过格式化解决的。所以,软格前先需要把这些软件全部关闭或删除。 错误提示十一:此应用程序仅供开发之用,继续安装可能会导致你的设备出现严重问题 问题说明:这个是软件的免责申明。 解决办法:不用理会,继续安装即可! 错误提示十二:无法在线检查证书有效性,请检查设置 问题说明:手机设置问题 解决办法:设置--手机设置--应用程序--程序管理:“软件安装”--选择 "全部",“在线证书检查”--选择 "关".
G. 更换浏览器证书怎么弄
更换浏览器证书方法如下:
1、按下 Windows + R 键打开“运行”,输入“mmc”,点击“确认”,打开控制台;
H. 1688上的证书切换是怎么装修的
安心吧,都有配件的可以安装的,不清楚最好买之前跟商家沟通下比较有底
I. 淘宝付款有两个银行证书怎么切换
它应该是自己能自动识别的。
如不能,建议你安装的时候记下证书号码,以便正确使用。
J. 国家职业技术等级证书怎样更换成国家职业资格证书
CECC证是教育部的一个下属机构发的,基本无用。 换不了。
职业资格证书, 只有人力内资源和社会保障部印章的容才有效。证书的有效范围,由上面级别最高的一个章决定。 人社部是是负责中央政府负责劳动者职业技能、水平鉴定的职能部门,有人社部章的,全国有效。其它如建设部、工信部章的,行业内有效。 如果证书上级别最高的章是省人社厅,那就是全省有效。人力资源管理, 可以考经济师的人力资源管理专业,再其次就是《中华人民共和国职业资格证书》中的人力资源管理师。其它的证都没用。