Tomcat 实现双向SSL认证
大概思路:
# -genkey[产生密钥对] -alias[密钥对别名] -validity[密钥有效期] -keyalg[密钥算法参数] -keysize[密钥位数]
# -keypass[密钥保护密码]- storepass[存储密码]
# -dname[别名相关附加信息,其中cn是服务器的名字一定要与WEB服务器中设置的一样] -keystore[密钥存储文件路径]
keytool -genkey -alias server -validity 720 -keyalg RSA -keysize 512 -keypass tomcat -storepass tomcat -keystore server.jks
2、生成证书请求文件
# -keypass[密钥保护密码] -keystore[存储文件路径] -storepass[存储密码]
keytool -certreq -alias server -sigalg MD5withRSA -file server.csr -keypass tomcat -keystore server.jks -storepass tomcat
# x509[签发x509证书命令] -req[输入待签发证书] -in[输入待签发证书文件路径] -out[产生x509证书文件输出路径]
# -CA[签发根证书] -CAkey[根证书密钥文件] -days[证书有效期] -CAserial[CA序列号文件]
#CA序列号文件可以自己手工创建一个文本文件,并写入初始值01;或者使用“-set_serial 1” 参数手工指定为1,后续生成时+1
openssl x509 -req -in server.csr -out server.crt -CA root.crt -CAkey root.key -days 365 -CAserial root.serial -sha1 -trustout
# -import[导入命令] -v trustcacerts[导入信任证书] -storepass[存储密码] -keypass[密钥保护密码]
# -alias[服务器证书的别名] -file[证书文件路径] -keystore[导入文件路径] -noprompt[不提示"您仍然想要将它添加到自己的keystore 吗?"]
keytool -import -v -trustcacerts -storepass tomcat -keypass tomcat -alias root -file root.crt -keystore server.jks
5、将服务端证书导入服务器密钥库
# -import[导入命令] -v trustcacerts[导入信任证书] -storepass[存储密码] -keypass[密钥保护密码]
# -alias[服务器证书的别名] -file[证书文件路径] -keystore[导入文件路径]
keytool -import -v -trustcacerts -storepass tomcat -keypass tomcat -alias server -file server.crt -keystore server.jks
6、将CA证书导入信任密钥库
# -import[导入命令] -v trustcacerts[导入信任证书] -storepass[存储密码] -keypass[密钥保护密码]
# -alias[服务器证书的别名] -file[证书文件路径] -keystore[导入文件路径] -noprompt[不提示"您仍然想要将它添加到自己的keystore 吗?"]
keytool -import -v -trustcacerts -storepass tomcat -keypass tomcat -alias server-ca -file root.crt -keystore servertrust.jks
# genrsa [产生密钥命令] -out[密钥文件输出路径] 512 [密钥位数]
openssl genrsa -des3 -out client.key 512
2、生成客户端证书申请文件
# req[产生证书命令] -new[新生成] -out[证书文件输出路径] -key[私钥文件路径]
openssl req -new -out client.csr -key client.key
3、使用CA证书为客户端证书签名
# x509[签发x509证书命令] -req[输入待签发证书] -in[输入待签发证书文件路径] -out[产生x509证书文件输出路径]
# -signkey [密钥文件路径]
# -CA[签发根证书] -CAkey[根证书密钥文件] -days[证书有效期] -CAserial[CA序列号文件]
openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA root.crt -CAkey root.key -days 365 -CAserial root.serial
# pkcs12[生成PKS12格式证书命令] -export[导出文件] -clerts[仅导出client证书]
# -in[输入的client证书文件路径] -inkey[client证书密钥文件路径] -out[导出PKS12格式文件路径]
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
在导出时可以设置密码,只有知道该密码才能将证书导入浏览器。
keytool -import -alias client -trustcacerts -storepass tomcat -file client.crt -keystore servertrust.jks
Tomcat 实现双向SSL认证的更多相关文章
- 自定义SSL证书实现单双向ssl认证记录
自定义SSL证书: 1.ca证书 #openssl genrsa -out ca.key 2048 #openssl req -new -key ca.key -out ca.csr #openssl ...
- SSL构建单双向https认证
1. SSL基本介绍 我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SSL进加密,能保证客户端到服务器端的通信都在被保护起来,那 ...
- 使用 curl 进行 ssl 认证
目录 SSL 认证 认证实现 问题解决 curl不支持 https SSL certificate problem, verify that the CA cert is OK curl: (60) ...
- mosquitto SSL认证
[11]MQTT mosquitto 双向SSL认证配置方式 [12]MQTT mosquitto 单向SSL认证的配置方式 Mosquitto服务器的搭建以及SSL/TLS安全通信配置(比较可信) ...
- SSL 认证之后,request.getScheme()获取不到https的问题记录
通过浏览器输入https://www.xxx.com,request.getScheme()获取到的确实http而不是https通过request.getRequestURL()拿到的也是http:/ ...
- RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识
情形一:接口的加.解密与加.验签 rsa不是只有加密解密,除此外还有加签和验签.之前一直误以为加密就是加签,解密就是验签.这是错误的! 正确的理解是: 数据传输的机密性:公钥加密私钥解密是密送,保 ...
- 搭建私有CA并基于OpenSSL实现双向身份认证
0x00 前言 互联网上的Web应用由于用户数目广泛,都是采用单向身份认证的,只需要客户端验证服务端的身份.但如果是企业内部的应用对接,客户端数量有限,可能就会要求对客户端也做身份验证,这时就需要一个 ...
- java中 SSL认证和keystore使用
java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报 目录(?)[+] 好久没用过SSL认证了,东西久不用,就有点生疏. ...
- Apollo单向SSL认证(1)
参考链接:https://www.cnblogs.com/benwu/articles/4891758.html keytool -genkey -alias mybroker -keyalg RSA ...
随机推荐
- 自动化运维web环境搭建:Nginx+Django+uwsgi
参考资料: http://lovelace.blog.51cto.com/1028430/1600594 http://www.cnblogs.com/xiongpq/p/3381069.html 安 ...
- 虚幻4外包团队-推荐非常全面的的Unreal教程
<Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark 课程分类:.net 适合人群:初级 课时数 ...
- 服务端性能测试工具校验v1.1
服务端性能测试工具校验v1.1 更新说明: 1.精简CRT运行库支持. 2.添加响应模拟测试,校验压力测试工具的响应时间统计准确性. 3.大并发请求请降低延迟时间 WEIMJSAM原创,转载请注明出处 ...
- PHP网页显示乱码问题总结
其实,乱码,都是因为编码不统一的问题导致的. 以UTF-8编码为例: 第一步,确定数据库字段的编码,字符集:urt8 第二部,PHP脚本设置编码:header('Content-Type: text/ ...
- 【原】灵活运用sessionStorage或者localStorage
有时,一个app中,后台并没有提供页面中对应的信息接口,需要前端在页面跳转时把某些信息带入下一个页面,一般想到用url后带参数的方法,但是有时需要带的参数过长,就不适合用这个方法了,所以用sessio ...
- PL/SQLDeveloper导入导出Oracle数据库方法
前一篇博客介绍了Navicat工具备份Oracle的方法,这篇博客介绍一下使用PL/SQL Developer工具导入导出Oracle数据库的方法. PL/SQL Developer是Oracle数据 ...
- 使用Squirrel创建基于Electron开发的Windows 应用安装包
我们把自己开发的Electron应用发布之前,需要把app打包成简单的安装包,这样app更容易被获取,以此来发布我们的应用.我们可以参考Wix或其他的安装程序,但是对于Electron应用更好的打包程 ...
- mysql 数据库视图迁移
最近做一个项目,为了方便查询,建了好多的视图表,正式上线的时候需要把本地数据库迁移到服务器上. 按照常规方法: 1."导出sql","导入sql",发现视图没过 ...
- PHP取整函数:ceil,floor,round,intval的区别详细解析
floor -- 舍去法取整说明float floor ( float value ) 返回不大于 value 的下一个整数,将 value 的小数部分舍去取整.floor() 返回的类型仍然是 fl ...
- 用python脚本通过excel生成文件夹树结构
大概这样写标题是对的吧... 目标: 通过excel目录结构文档生成文件夹树结构. 也就是: 通过下面的excel