新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
下面产生一个自签证书。安装完J2SDK(这里用的是J2SDK1.4)后,在J2SDK安装目录的bin目录下,有一个keytool的可执行程序。利用keytool产生自签证书的步骤如下:
公司专注于为企业提供网站建设、做网站、微信公众号开发、商城系统网站开发,成都小程序开发,软件按需策划设计等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务。
第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:
输入keystore密码: abc123
您的名字与姓氏是什么?
[Unknown]: Li
您的组织单位名称是什么?
nbs
问题的其他解决办法参考 :
;t=JAVA+
SSL 连接的 context 目前用那个 KeyManager, TrustManager 的实现(Sun 公司提供的)都是默认地从命令行提供的参数或代码中明确初始化的 trust manager / key manager 中查找的,这里面可以肯定的是这个参数在连接建立之前已经固定了的静态形式,这要求我们把可以信任的服务器证书的颁发机构的根证书先导入到 trust store 中然后指派给 java 程序。
因此当我们的服务器使用了一张不在 trust store 中的信任根证书机构名录中的证书是不会被信任的,因此我们必须提供一个有别于 Sun 的 Trust Manager 接口的实现类,然后像 IE 浏览器那样在查找证书来确认是否信任时弹出一个对话框出来让用户检查,当用户点击“以后一直信任该证书的厂商”时我们把它缓存在持久性介质(比如文件或数据库)中,下次访问时先看是否有缓存的,没有再来弹对话框让用户确认,当服务器要求客户端出示客户端证书时(比如网银业务)我们同样需要提供自己的 key manager 实现。
public class ZhengShu{
private String name; //学生姓名
private boolean sex; //学生性别 true 男 || false 女
private String csrq; //出生日期
private String xxksrq; //学习开始日期
private String xxjsrq; //学习结束日期
private static int zsbh; //证书编号
private String dzzch; //电子注册号
private String xz; //校长
private static String ZYMC; //专业名称
private static String SCHOOLNAME;//学校名称
static{
ZYMC = "《计算机科学与技术》";
SCHOOLNAME = "北京大学";
}
/**
* 初始化证书的构造方法
**/
public ZhengShu(String name, boolean sex, String csrq, String xxksrq, String xxjsrq, String dzzch, String xz){
++zsbh;
this.name = name;
this.sex = sex;
this.csrq = csrq;
this.xxksrq = xxksrq;
this.xxjsrq = xxjsrq;
this.dzzch = dzzch;
this.xz = xz;
}
/**
* 输出方法,想输出哪些信息自己再添加
**/
public void getPrint(){
System.out.println("==================毕业证书==================");
System.out.println("\t证书编号:" + this.zsbh);
System.out.println("\t学生姓名:" + this.name);
System.out.println("\t学生性别:" + (this.sex == true ? "男" : "女"));
System.out.println("\t出生日期:" + this.csrq);
System.out.println("\t学习时间:" + (Integer.parseInt(this.xxjsrq.substring(0,4)) - Integer.parseInt(this.xxksrq.substring(0,4)))+"年");
System.out.println("\t学校姓名:" + ZhengShu.SCHOOLNAME);
System.out.println("\t学生专业:" + ZhengShu.ZYMC);
System.out.println();
}
/**
* 修改校名的方法
* 如果学校名称改了,那么所有学生的证书所在学校也必须修改
**/
public void updateSchoolName(String sn){
ZhengShu.SCHOOLNAME = sn;
}
public void updateXSZY(String zy){
ZhengShu.ZYMC = zy;
}
public static void main(String[] args){
ZhengShu a1 = new ZhengShu("张三",true,"1991-08-23","2013-04-04","2015-04-05","0CXXASDS23","文章");
//System.out.println(a1.zsbh);
a1.updateSchoolName("北京理工大学"); //修改所有学校
a1.updateXSZY("《电子商务》"); //修改所有专业
a1.getPrint();
ZhengShu a2 = new ZhengShu("李四",false,"1991-08-23","2013-04-04","2015-04-05","0CXXASDS23","文章");
a2.getPrint();
}
}