⑴ java中 用到.cer的安全证书,如何通过openssl来生成这个证书
openssl貌似 linux系统里用的多, 也可以用java的keytool生成,jdk自带的.
⑵ 在java中使用安全证书的问题
在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢?
其实很简单,方法如下:
每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来,
在该网页上右键 >> 属性>> 点击"证书">>
再点击上面的"详细信息"切换栏 >>
再点击右下角那个"复制到文件"的按钮
就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
例如:保存为abc.cer,放在C盘下
第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?
方法如下
假设你的jdk安装在C:\jdk1.5这个目录,
开始 >> 运行>> 输入cmd 进入dos命令行>>
再用cd进入到C:\jdk1.5\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer
此时命令行会提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts证书库的默认密码,
你自已也可以修改的。
导入后用-list查看(没有使用-alias指定别名,所以是mykey),其中md5会和证书的md5对应上。
mykey, 2012-10-26, trustedCertEntry,
认证指纹 (MD5): 8D:A2:89:9A:E4:17:07:0B:BD:B0:0C:36:11:39:D0:3D
ok,大功告成!
以后更新时,先删除原来的证书,然后导入新的证书
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts
自定义文件和密码路径,还没有验证:
Define the TrustStore using the JAVA_OPTS variable on the Stash Server:
You will have to do the following:
On Windows:
JAVA_OPTS = -Djavax.net.ssl.trustStore="%JAVA_HOME%\jre\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
On Linux:
JAVA_OPTS = -Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
(info) On my local instance trustStore password is changeit so I belive, if you didn´t changed it, your is changeit as well.
tomcat、junit运行时会从默认路径加载cacerts文件,如果main函数直接运行需要指定javax.net.ssl.trustStore文件路径,比如:
java -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -jar XXX.jar &
⑶ java,已知加密字符串,怎么生成cer文件求代码
packagecom.tgtbj.dsf.certhelper;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.math.BigInteger;
importjava.security.KeyPair;
importjava.security.KeyPairGenerator;
importjava.security.KeyStore;
importjava.security.cert.Certificate;
importjava.security.cert.CertificateEncodingException;
importjava.security.cert.X509Certificate;
importjava.util.Date;
importjavax.security.auth.x500.X500Principal;
importorg.bouncycastle.x509.X509V3CertificateGenerator;
publicclassTT{
publicstaticvoidgenCertFile(StringcertPath,Stringpassword,
intkeysize,Stringalgorithm)throwsException{
//创建KeyStore
KeyStorestore=KeyStore.getInstance("PKCS12");
store.load(null,null);
//生成一对公私钥,这部分如果自己已经有了PublicKey,可以直接在下面使用,不用生成
KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");
kpg.initialize(keysize);
KeyPairkeyPair=kpg.generateKeyPair();
//这个字符串根据自己情况填
Stringissuer="C=CN,ST=BJ,L=BJ,O=SSS,OU=SC,CN=SSS";
Stringsubject=issuer;
=newX509V3CertificateGenerator();
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setIssuerDN(newX500Principal(issuer));
certGen.setNotBefore(newDate(System.currentTimeMillis()-10*365
*24*60*60*1000));
certGen.setNotAfter(newDate(System.currentTimeMillis()+10*365*24
*60*60*1000));
certGen.setSubjectDN(newX500Principal(subject));
certGen.setPublicKey(keyPair.getPublic());//此处可直接传入线程的PublicKey
if(algorithm==null||algorithm.equals("")){
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
}else{
certGen.setSignatureAlgorithm(algorithm);
}
X509Certificatecert=certGen.generateX509Certificate(keyPair
.getPrivate());
//私钥有现成的也可直接传入
store.setKeyEntry("alias",keyPair.getPrivate(),
password.toCharArray(),newCertificate[]{cert});
//导出为cer证书
try{
FileOutputStreamfos=newFileOutputStream(certPath+".cer");
fos.write(cert.getEncoded());
fos.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(CertificateEncodingExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])throwsException{
genCertFile("D:/opop1","qwafrt",1024,"SHA1WithRSA");
}
}
⑷ cer 与 pfx 证书的加密与解密
JAVA不能直接使用pfx证书的,需要去java网站上下一个keytools工具,导入pfx证书后才能使用。
cer和pfx是成对的,你做了个cer的话必然会同时生成一个pfx,不晓得你的cer是怎么做的。
一般来说是这样的,你先用一些工具,比如刚才说的java的keytools,或者IIS生成一个密钥请求crs,然后把这个crs发送给密钥发放的CA,你可以自己搭一个CA或者去买一个,CA会再发给你一个确认后的证书,你再使用这个确认后的cer来结束证书申请过程,最终得到一个私钥和一个密钥。
具体的过程参考这里:怎么申请怎么使用都包含了
http://www.cnnic.cn/jczyfw/wzws/bzkx/jsjs/
你是JAVA开发的话可以看看tomcat或者apach的,这里用的CA是CNNIC的,不过别家的也都大同小异。
⑸ 证书中的jks、pfx和cer后缀都是什么文件
jks是JAVA的keytools证书工具支持的证书私钥格式。
pfx是微软支持的私钥格式。
cer是证书的公钥。
如果是你私人要备份证书的话记得一定要备份成jks或者pfx格式,否则恢复不了。
简单来说,cer就是你们家邮箱的地址,你可以把这个地址给很多人让他们往里面发信。
pfx或jks就是你家邮箱的钥匙,别人有了这个就可以冒充你去你家邮箱看信,你丢了这个也没法开邮箱了。
⑹ 如何把安全证书导入到java中
在该网页上右键 >> 属性 >> 点击"证书" >>
再点击上面的"详细信息"切换栏 >>
再点击右下角那个"复制到文件"的按钮
就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
例如:保存为abc.cer,放在C盘下
第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?
方法如下
假设你的jdk安装在C:\jdk1.5这个目录,
开始 >> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到C:\jdk1.5\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts -keystore cacerts -file d:\software\
⑺ 如何把安全证书导入到java中的cacerts证书库
把安全证书导入到java中的cacerts证书库步骤:
1、先下载证书,然后使用命令导入
已经完成了证书的导入。
⑻ 如何导入.cer证书到Java keystore
1. 如果你想验证你所需要的私钥。有没有其他的选项。 证书是有额外的属性(国家,...)是由证书颁发机构garants的附加属性为true签名的公钥。
CER文件证书和没有私钥。私钥设置有。PFX密钥库正常文件。 如果你真的是验证你已经导入了私钥。
你通常可以导入。与任何问题的CER证书 密钥工具-importcert文件certificate.cer-密钥库的keystore.jks别名“别名”
2. 你已经有了该证书可能是服务器的证书,或签名服务器的证书。你会需要它,使您的Web服务客户端端可以验证服务器。 但是,如果你还需要使用SSL进行客户端端身份验证,那么你需要让自己的证书,来验证您的Web服务客户端端。
为此 CodeGo.net,您需要创建一个证书请求,这个过程涉及到创建自己的私有密钥,以及相应的公开密钥,以及安装随着(电子邮件,网站等)的公共密钥这就是所谓的证书请求文件。
⑼ 如何编一个Java应用读取XP数字证书库中的cer证书中的信息
这么复杂,还没有分儿。。。帮你顶。关于开发就帮不上你了。
⑽ 如何把安全证书导入/删除 java中的cacerts证书库
每一步:进入某个开头的网站,把要导入的证书下载过来,
在该网页上右键 >> 属性 >> 点击"证书" >>
再点击上面的"详细信息"切换栏 >>
再点击右下角那个"复制到文件"的按钮
就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
例如:保存为abc.cer,放在C盘下
第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?
方法如下
假设你的jdk安装在C:\jdk1.5这个目录,
开始 >> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到C:\jdk1.5\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer -trustcacerts
此时命令行会提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts证书库的默认密码,
你自已也可以修改的。
ok,大功告成!
以后更新时,先删除原来的证书,然后导入新的证书
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts