java 生成https证书_java生成Https证书,及证书导入的步骤和过程
原文参考:http://www.cnblogs.com/fron/p/https-20170111.html
以下是相关的Tomcat,JDK和Windows环境:
Tomcat版本:tomcat-7.0.55
JDK版本:jdk1.6.0
目录所在的位置:
Serve的目录:D:\server\tomcat-7.0.55\
JDK的目录:D:\jdk\jdk1.6.0
1、生成服务器的密匙文件casserver.keystore
1)打开CMD切换到Serve的目录下面D:\Server\tomcat\下
2)执行:keytool -genkey -alias casserver -keypass cas123 -keyalg RSA -keystore casserver.keystore -validity 365
说明:
-alias指定别名为casserver;
-keyalg指定RSA算法;
-keypass指定私钥密码;
-keystore指定密钥文件名称为casserver.keystore;
-validity指定有效期为365天。
另外提示输入密匙库口令应与-keypass指定的cas123相同;您的名字与姓氏fron.com是CAS服务器使用的域名(不能是IP,也不能是localhost),其它项随意填。
注意:
服务器上如果有多个JDK,请确认环境变量中的JDK路径为tomcat所使用的JDK,
如果不在环境变量中,也可切换到指定JDK的bin目录下执行命令;提示的输入keystore密码应与-keypass必须与指定的相同,
否则后面tomcat启动会报IO异常(Cannot recover key)。
命令执行成功后Server目录下多出casserver.keystore文件。
3)可以看到Tomcat 下面生成casserver.keystore
2.生成服务端证书casserver.cer
1)根据上面导出的casserver.keystore文件就可以生成casserver.cer文件,只需在原来的Serve的目录下面D:\Server\tomcat\下执行:
keytool -export -alias casserver -storepass cas123 -file casserver.cer -keystore casserver.keystore
说明:
-alias指定别名为casserver;
-storepass指定私钥为liuqizhi;
-file指定导出证书的文件名为casserver.cer;
-keystore指定之前生成的密钥文件的文件名。
注意:-alias和-storepass必须为生成casserver.keystore密钥文件时所指定的别名和密码,否则证书导出失败
2)执行上面命令后发现多了casserver.cer文件
3.导入证书文件到cacerts 密钥库文件
接下来就是把上面生成的服务器的证书casserver.cer导入到cacerts密钥库文件中(后面的客户端会用到这些)
keytool -import -trustcacerts -alias casserver -storepass cas123 -file casserver.cer –keystore cacerts
命令执行成功后Server目录下多出cacerts文件。
4.服务端Tomcat配置
在制作完成密钥文件、证书文件、密钥库文件后即可进行服务端Tomcat的配置。打开$CATALINA_HOME/conf/server.xml
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"
keystorePass="cas123"
port="443" />
说明:
port一般为8443或443,最常用的是443端口(https默认端口),
这样https方式访问的时候可以不加端口号(如:https://sso.demo.com/cas/login);
keystoreFile为tomcat目录下的密钥文件;
keystorePass为私钥密码;truststoreFile为生成的信任文件,
如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件;其它属性默认即可。
5.生成客户端密钥库文件
单向认证的客户端配置只需生成客户端信任文件caserts即可。
首先将服务端生成的证书文件(之前生成的casserver.cer文件)复制到$JAVA_HOME/jre/lib/security下,
然后打开CMD窗口切换到$JAVA_HOME/jre/lib/security下并执行命令:
keytool -import -trustcacerts -alias casclient -storepass changeit -file casserver.cer -keystore cacerts
命令执行成功后JDK目录/jre/lib/security下多出cacerts文件。
6.客户端应用配置-----这块我感觉作者写错了,和上面服务端Tomcat的配置一样
TOMCAT修改
tomcat\conf\ server.xml 修改片断
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS" keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"keystorePass="cas123"
port="443"/>
7.常见配置错误
1)keytool 生成安全证书不能使用IP地址 一律使用域名
2)务必确认客户端程序使用JDK 路径正确 分清楚JDK、JRE
zimbra配置使用ad的证书,只需要crt证书即可(发给调用AD的java客户端也仅是crt证书即可)。
原文参考:https://confluence.atlassian.com/crowd/configuring-an-ssl-certificate-for-microsoft-active-directory-63504388.html
UNIX
Navigate to the directory in which the Java used by JIRA is installed. If the default JAVA installation is used, then it would be
cd $JAVA_HOME
Run the command below, where server-certificate.crtis the name of the file from your directory server:
sudo keytool -importcert -keystore ./jre/lib/security/cacerts -file server-certificate.crt
keytool will prompt you for a password. The default keystore password is changeit.
When prompted Trust this certificate? [no]: enter yesto confirm the key import:
Password:
Enter keystore password: changeit
Owner: CN=ad01, C=US
Issuer: CN=ad01, C=US
Serial number: 15563d6677a4e9e4582d8a84be683f9
Valid from: Tue Aug 21 01:10:46 ACT 2007 until: Tue Aug 21 01:13:59 ACT 2012
Certificate fingerprints:
MD5: D6:56:F0:23:16:E3:62:2C:6F:8A:0A:37:30:A1:84:BE
SHA1: 73:73:4E:A6:A0:D1:4E:F4:F3:CD:CE:BE:96:80:35:D2:B4:7C:79:C1
Trust this certificate? [no]: yes
Certificate was added to keystore
You may now change 'URL' to use LDAP over SSL (i.e. ldaps://:636/) and use the 'Secure SSL' option when connecting your application to your directory server.
cer和crt都是证书,只是格式不一样。具体参考下面的内容
证书与编码
本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编码并/或签发。
实际上,“X.509证书”经常被用来指代IETF的PKIX(Public Key Infrastructure)证书和X.509 v3 证书标准中的CRL(Certificate Revocation List)。
X509 文件扩展名
首先我们要理解文件的扩展名代表什么。DER、PEM、CRT和CER这些扩展名经常令人困惑。很多人错误地认为这些扩展名可以互相代替。尽管的确有时候有些扩展名是可以互换的,但是最好你能确定证书是如何编码的,进而正确地标识它们。正确地标识证书有助于证书的管理。
编码 (也用于扩展名)
.DER = 扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。
.PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—– BEGIN …“开始。
常用的扩展名
.CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。
CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll, CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。
.KEY = 扩展名KEY用于PCSK#8的公钥和私钥。这些公钥和私钥可以是DER编码或者PEM编码。
CRT文件和CER文件只有在使用相同编码的时候才可以安全地相互替代。
本文转自 Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1964864
java 生成https证书_java生成Https证书,及证书导入的步骤和过程相关推荐
- java生成Https证书,及证书导入的步骤和过程
原文参考:http://www.cnblogs.com/fron/p/https-20170111.html 以下是相关的Tomcat,JDK和Windows环境: Tomcat版本:tomcat-7 ...
- java生成数字证书_java生成数字证书方法
Java 中生成数字证书也很简单的. 1.创建证书 Java 中的 keytool.exe (位于 JDKBin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书 ...
- java 浏览器证书_Java拒绝浏览器接受的证书
我在Wildfly 9中配置有效的证书(非自签名!)时遇到了麻烦.我在Wildfly中配置了HTTPS连接器: 安全领域: alias="appcert" /> 并使用以下命 ...
- java生成小图片_JAVA生成缩略小图片类
JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...
- java 生成校验验证码_java生成验证码并进行验证
一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...
- java https请求 证书_java发https请求,证书配置
配证书: Getting Tomcat SSL (https) Working 1.Create a certificate keystore containing ...
- java生成随机时间_Java生成某段时间内的随机时间
上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 生成随机时间 ...
- java usbkey数字证书_Java 密钥库和数字证书
密钥库中可以存放多个条目(公钥/私钥对和证书),它们在密钥库中以别名(alias)区分. 1.cd C:\Program Files (x86)\Java\jdk1.6.0_10\bin 2.生成签名 ...
- java生成sql语句_java生成SQL语句
代码如下: /** * 动态生成SQ及SQL参数L * @param ve 接收到的消息的CHGLIST * @param paramList MQ消息中的SQL参数 * @param t 泛型对象 ...
最新文章
- 大众点评开源监控CAT概览
- AsyncHttpServer 异步回调,并发
- mysql的端点在哪查看_数据库镜像端点
- JavaWordCountCore
- Linux常用运维命令笔记
- Spyder常用快捷键
- AndroidStudio_Android使用Gradle来管理依赖jar包_以及编译_Gradle的安装_配置_更新依赖方法---Android原生开发工作笔记221
- dingtalk 推送手机号信息 golang_Python学习第九十六天:Python调用钉钉机器人推送消息...
- Expert 诊断优化系列------------------你的CPU高么?
- 使用自定义条件触发Nintex workflow
- unantu下的tmp文件夹_纯干货:Linux各文件夹结构说明及用途介绍
- 【答题卡识别】基于matlab GUI hough变换答题卡成绩统计(带面板)【含Matlab源码 1828期】
- No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理
- Mac安装安卓虚拟机 - Android Studio运行apk安装包
- 来了,来了,他来了,使用Github制作自己的在线简历(网页和PDF版)你都值得拥有
- 菜鸟教程android数据库,Flutter - Android 菜鸟教程打包
- Autosar NM
- 钉钉机器人智能回复_青岛市市南区税务局:“税博士”智能服务机器人亮相办税服务厅...
- 如何在github的README中增加Badge标识
- 海外英语杂志海外英语杂志社海外英语编辑部2022年第8期目录
热门文章
- Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes)
- mysql1067 aborting_mysql启动报错误1067怎么办
- edusoho linux 500错误,EduSoho网校系统500报错怎么解决?
-
EduSoho官网
- Linux下延时一定时间,又不挂起程序。
- 微信的一些实用功能,你知道吗?
- inux学习笔记:14-1.rpm包
- css百度图片布局,css3绘制百度的小度熊
- H264/AVC NAL单元和解码
- 1M分辨率中国31个主要城市城市绿地数据
- 【电路】【人体感应】【人体红外传感器】【夜间监控】自动识别人并自动开启设备-可用于人像跟踪监控【第二部分-设备部分】【方案二】