A. 如何用java调用Openssl生成一个数字证书
openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数咐氏des3便是早扰指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不衡睁散方便,也可以..
B. 审核该怎么用java实现,我用的是struts1.做的是数字证书的审核
1.权限的设置:审核人员看不到操作模块;操作人员看不到审核模块
2.记录表中应该有一个状态的字段:操作人员录入信息后该条记录应该弯困拆为埋枣待审核(或者是提交审核)状态,(如果输入了二级密码,状态直接为审核通过);审核模块中直接查询状态为待审核(或提交审核)的记录,同意后更新该记录的状态为审核通过;
3.你至少需要以下几个action:
①操作员提交数据的action(包括修改,可以公用这个action)
②审核员查询数据的action
③审核员更新记录状态的action
(这里没尺隐考虑权限的问题,如果考虑权限问题,你的工作量还有很多很多)
C. 如何利用keytool工具生成数字证书
方法/步骤
查看JDK1.6是否安装,出现如下界面说明JDK已经安装
执行“keytool -genkey -alias test -keyalg RSA -keysize 1024 -keystore test.jks -validity 365”,弹出如下界面
设置JKS的密码为“123456”后,出现如下界面:
输入“名字”、“单位名称”、“组织名称”、“所在的城市”、“省份”以及“国家”,系统会提示主题名称是否正确,并设置JKS的主密码
利用"keytool -list -v -keystore test.jks"查看JKS中生成的证书的详细信息
利用“keytool -alias test -exportcert -keystore test.jks -file test.cer”,导出证书,并可以双击打开证书查看证书信息
D. 有谁知道java怎么实现弹出浏览器中的证书选择框吗
浏览器是按根据 subject 来查找证书的,你也这样就好了。
比如对于一个网站来说,就是找证书中对应到这个网站的条目,每个证书里面有一个 subject, CN 条目,按照 CN 对比就能找到证书。而用 Java 读取 IE 浏览器的证书存储则是 API 的事情,不是我们自己读取的,JDK 6 开始自带了这个 IE 的 KeyStore 读取方法。比如下面这个代码,我的电脑上的 Windows 证书存储中一共有3个 Alipay 支付宝数字证书,它们的客户号都是我的支付宝,我们可以读取所有的条目比较它的 CN 后都列出来放在 Combox 下拉框中,让用户选择,不过似乎 Java 不能在通信过程中停下来让我们选择一个证书啊?你的问题是指不知道如何让程序自动匹配其中一个证书?
//这个方法读取Windows操作系统的证书存储中"根证书列表“,
//似乎”个人“证书是"Windows-My",还有其它的我不知道,你可以猜测嘛。
KeyStoreks=KeyStore.getInstance("Windows-ROOT","SunMSCAPI");
ks.load(null,null);
for(Enumerationiter=ks.aliases();iter.hasMoreElements();){
Stringalias=(String)iter.nextElement();
Certificatecert=ks.getCertificate(alias);
System.out.println("Cert:"+cert.getType()+"/"+cert.getPublicKey());
}
E. 如何获取数字证书(x509Certificate)中的指纹算法
创建X509证书方法较多,在Windows 环境下大致总结了几中办法,
1) 通过CA获取证书,
2) 通过微软提供的makecert 工具得到测试证书
3) 编程的方法创建,.Net提供了 X509Certificate2 类,该类可以用于创建证书,但只能从RawData中创建,创建后无法修改除FriendlyName以外的任何属性。
我在互联网上找了很久,始终没有找到完全通过程序创建自定义的证书的方法。后来想了一个折中办法,就是用程序调用 makecert.exe 先生成一个证书,证书的一些参数如Subject,有效期,序列号等可以通过参数传入,然后把生成的证书文件读到Rawdata中,得到X509Certificate2 类型的证书对象。当然这种方法确实比较笨,必须要依赖外部进程。等后面有时间的话,我还是想按照X509 V3 标准,自己创建RawData,然后生成证书,这样应该是比较灵活的做法。不知道网友们有没有什么更好的方法来创建一个自定义的证书。
通过 makecert.exe 创建X509证书的代码如下,供大家参考
static object semObj = new object();
/// <summary>
/// 自定义的证书信息
/// </summary>
public class T_CertInfo
{
public String FriendlyName;
public String Subject;
public DateTime BeginDate;
public DateTime EndDate;
public int SerialNumber;
}
/// <summary>
/// 生成X509证书
/// </summary>
/// <param name="makecrtPath">makecert进程的目录</param>
/// <param name="crtPath">证书文件临时目录</param>
/// <param name="certInfo">证书信息</param>
/// <returns></returns>
public static X509Certificate2 CreateCertificate(String makecrtPath, String crtPath,
T_CertInfo certInfo)
{
Debug.Assert(certInfo != null);
Debug.Assert(certInfo.Subject != null);
string MakeCert = makecrtPath + "makecert.exe";
string fileName = crtPath + "cer";
string userName = Guid.NewGuid().ToString();
StringBuilder arguments = new StringBuilder();
arguments.AppendFormat("-r -n \"{0}\" -ss my -sr currentuser -sky exchange ",
certInfo.Subject);
if (certInfo.SerialNumber > 0)
{
arguments.AppendFormat("-# {0} ", certInfo.SerialNumber);
}
arguments.AppendFormat("-b {0} ", certInfo.BeginDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("-e {0} ", certInfo.EndDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("\"{0}\"", fileName);
F. 使用Java程序签发数字证书, FileInputStream in2=new FileInputStream(new File( args[0]));总报错!!
文件不存在,
先建立一个空白的文件试试
G. 如何通过java程序来加载客户端证书进行ssl连接
用WS-Security对.NET 和 Java之间的Web服务请求进行签发到底为了对Web服务请求进行签发可以保证消息内容在传输期间没有被修改。 使用数字证书,可以用一个私钥对Web服务进行签发,这样只能用相应的公钥对消息进行校验。
到目前为止,Web服务的安全策略有两种选择: 一种是在传输层(使用 SSL),另一种是在应用层,使用自定制的安全机制。 这两种方法虽然技术上有效,在采用时均有一些限制与缺点。
在传输层使用SSL而获得的安全性是通过对底层的传输层(HTTP)进行安全化而确保Web服务请求的完整性。. SSL 既可以用于加密链接,也可以用于使用证书来校验客户端和服务器。
使用SSL来保护Web服务的一个主要问题之一就是其安全性只在一个单独的节点到另一个节点之间有效。 由于SSL通信是基于传输层,一旦到达终端节点,这种保护消息的方法就不再有效了。. 例如,我从Client A 向 Server B发送一个消息,并使用SSL来保护链接。 然而,如果我从Client A 向 Server C发送一条信息,并且必须经过Server B,这时就没有容易的办法来确保使用SSL通过这一媒介的传输消息的安全性。
也可以开发一种自定制的安全机制,将消息的内容和消息头在客户端进行签发,并在服务器端进行校验。 这种办法可以克服传输安全问题,但最终这将是一种自定制的解决方案。. 如果一个组织希望保护发布到其它组织的Web服务,则他必须确保另一终端节点也使用了相同的技术。
WS-Security 通过提供一种基于应用层的Web服务签发方式来解决这两个问题(避免在传输层进行安全化时遇到的安全问题),它使用了一个已经公布的标准,可以由客户、系统集成商和销售商参考和采用。
为了帮助推动这一标准,本文将演示一系列两个WS-Security实现之间进行Web签发的示例: 一个位于 Microsoft .NET, 基于 Microsoft Web Services Enhancements (WSE) 1.0, 另一个基于GLUE Professional 4.0.1。
H. java生成数字证书以及验证数字证书的问题
数字证书有很多种,如果X509,
事实上,java.security 可以完成的。先掌握概念,做起来并不难。也可以网络得到。
I. 用java怎么实现CA颁发的数字证书的认证功能
PKI 目前使用最多的非对称算法是 RSA。对于基于 RSA 的 PKI 而言,CA 应有一对 RSA 的公私钥对,私钥是回 CA 的生命,答严格保密,而公钥则发布给使用方。CA 签发一张证书的话,主要是使用 CA 的 RSA 私钥对证书进行签名,并将签名结果保存在证书当中。使用者通过 CA 发布的公钥来验证证书中的签名值,就可以确定该证书是否是由该 CA 签发的。自己要做的就是从证书中提取签名数据和用于签名的原始数据,再使用 CA 的公钥验证这个签名就可以了。
J. 1,java生成数字证书为什么会出现下图情况我先说一下我是怎么做的。请高手指点
你配置的是单向SSL,tomcat不会对用户身份作出验证。只是在tomcat和浏览器之间建立了SSL通道。身份验证部分还得自己写。