使用JDK中的 keytool【创建证书】・【查看】・【使用】
目录
■前言
1.创建证书
2.查看创建的证书内容
查看证书详细信息
查看证书指纹
3.使用
配置SpringBoot工程
application.properties
放置证书(.keystore)
可以使用的URL
访问效果
Chrome
IE
证书在IE中的显示
4.遇到的问题
端口被占用
浏览器不识别的SSL协议
IE 显示的情报
Google 显示的情报
查看浏览器协议支持
■消除证书中的警告
■扩展JDK下,已经安装的证书查看
■扩展,JDK添加证书的信任机构
■前言
HTTPS,在HTTP下加入SSL层
SSL(Secure Sockets Layer,安全套接层)
使用SSL首先需要一个证书
---
1.创建证书
keytool -genkey -alias myTomcat
---
keytool -genkey -alias myTomcat -keypass tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore C:\test\keystoreRSA\.keystore -storepass tomcat
----
密码使用tomcat
---
---
2.查看创建的证书内容
---
查看证书详细信息
c:\test\keystoreRSA>keytool -list -v -keystore .keystore -storepass tomcat
密钥库类型: jks
密钥库提供方: SUN您的密钥库包含 1 个条目别名: mytomcat
创建日期: 2021-5-23
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=sss, OU=aaa, O=aaaaaa, L=ddd, ST=dddddd, C=ccc
发布者: CN=sss, OU=aaa, O=aaaaaa, L=ddd, ST=dddddd, C=ccc
序列号: 7bafa46e
有效期为 Sun May 23 22:21:27 CST 2021 至 Mon May 23 22:21:27 CST 2022
证书指纹:MD5: 9E:CF:A8:71:5B:ED:4C:EA:6F:69:9A:7B:9B:BF:82:40SHA1: CE:B8:BD:B9:E7:71:0A:25:39:12:B1:3C:67:FF:F2:32:CC:05:07:7CSHA256: C2:9E:A2:65:ED:64:42:C6:26:C9:71:D4:F1:C1:C3:76:C8:43:89:BE:C3:0B:85:03:70:62:4D:49:8F:7A:60:8F
签名算法名称: SHA256withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 3扩展:#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9D D7 16 6A F7 3A 0C 02 AB C8 08 E6 E3 27 48 C0 ...j.:.......'H.
0010: 54 1C AA F4 T...
]
]*******************************************
*******************************************Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore .keystore -destkeystore .keystore -deststoretype pkcs12" 迁移到行 业标准格式 PKCS12。c:\test\keystoreRSA>
---
查看证书指纹
c:\test\keystoreRSA>keytool -list -keystore .keystore -storepass tomcat
密钥库类型: jks
密钥库提供方: SUN您的密钥库包含 1 个条目mytomcat, 2021-5-23, PrivateKeyEntry,
证书指纹 (SHA1): CE:B8:BD:B9:E7:71:0A:25:39:12:B1:3C:67:FF:F2:32:CC:05:07:7CWarning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore .keystore -destkeystore .keystore -deststoretype pkcs12" 迁移到行 业标准格式 PKCS12。c:\test\keystoreRSA>
3.使用
配置SpringBoot工程
https://blog.csdn.net/sxzlc/article/details/116612564
application.properties
server.port=443
server.ssl.key-store: .keystore
server.ssl.key-store-password: tomcat
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: myTomcat
放置证书(.keystore)
启动log
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.1.6.RELEASE)2021-05-23 22:34:25.101 INFO 11616 --- [ main] s.c.S.HelloWorldMainApplication : Starting HelloWorldMainApplication on PC_NAME with PID 11616 (C:\dev\SpringBootHelloWorld\target\classes started by login_UserName in C:\dev\SpringBootHelloWorld)
2021-05-23 22:34:25.105 INFO 11616 --- [ main] s.c.S.HelloWorldMainApplication : No active profile set, falling back to default profiles: default
2021-05-23 22:34:26.219 INFO 11616 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 443 (https)
2021-05-23 22:34:26.257 INFO 11616 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-05-23 22:34:26.257 INFO 11616 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.21]
2021-05-23 22:34:26.350 INFO 11616 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-05-23 22:34:26.350 INFO 11616 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1208 ms
2021-05-23 22:34:26.525 INFO 11616 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-05-23 22:34:26.608 INFO 11616 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]
2021-05-23 22:34:27.069 INFO 11616 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 443 (https) with context path ''
2021-05-23 22:34:27.073 INFO 11616 --- [ main] s.c.S.HelloWorldMainApplication : Started HelloWorldMainApplication in 2.284 seconds (JVM running for 2.717)
2021-05-23 22:34:38.353 INFO 11616 --- [-nio-443-exec-7] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-05-23 22:34:38.353 INFO 11616 --- [-nio-443-exec-7] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2021-05-23 22:34:38.365 INFO 11616 --- [-nio-443-exec-7] o.s.web.servlet.DispatcherServlet : Completed initialization in 12 ms
可以使用的URL
---
https://localhost/
---
https://localhost/index.html
---
https://localhost/hello
---
访问效果
Chrome
IE
证书在IE中的显示
---
----
4.遇到的问题
端口被占用
netstat -ano | find "443"
taskkill /pid 7572 /F
浏览器不识别的SSL协议
---
IE 显示的情报
无法安全地连接到此页面
这可能是因为该站点使用过期的或不安全的 TLS 安全设置。如果这种情况持续发生,请与网站的所有者联系。
---
Google 显示的情报
localhost 使用了不受支持的协议。
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
---
查看浏览器协议支持
https://myssl.com/myclient.html
---
参考解决1 NG
https://blog.csdn.net/u013255226/article/details/83416003
参考解决2 NG
https://blog.csdn.net/qq_33758347/article/details/87795428
参考解决3 OK 生成证书时,指定更多信息
https://blog.csdn.net/aiyo92/article/details/87863426
■消除证书中的警告
---
c:\>keytool -importkeystore -srckeystore c:\test\keystoreRSA\.keystore -destkeystore c:\test\keystoreRSA\.keystore -deststoretype pkcs12
输入源密钥库口令:
已成功导入别名 mytomcat 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消Warning:
已将 "c:\test\keystoreRSA\.keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "c:\test\keystoreRSA\.keystore.old" 进行了备份。c:\>
---
---
c:\>cd c:\test\keystoreRSAc:\test\keystoreRSA>keytool -list -v -keystore .keystore -storepass tomcat
密钥库类型: jks
密钥库提供方: SUN您的密钥库包含 1 个条目别名: mytomcat
创建日期: 2021-5-24
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=sss, OU=aaa, O=aaaaaa, L=ddd, ST=dddddd, C=ccc
发布者: CN=sss, OU=aaa, O=aaaaaa, L=ddd, ST=dddddd, C=ccc
序列号: 7bafa46e
有效期为 Sun May 23 22:21:27 CST 2021 至 Mon May 23 22:21:27 CST 2022
证书指纹:MD5: 9E:CF:A8:71:5B:ED:4C:EA:6F:69:9A:7B:9B:BF:82:40SHA1: CE:B8:BD:B9:E7:71:0A:25:39:12:B1:3C:67:FF:F2:32:CC:05:07:7CSHA256: C2:9E:A2:65:ED:64:42:C6:26:C9:71:D4:F1:C1:C3:76:C8:43:89:BE:C3:0B:85:03:70:62:4D:49:8F:7A:60:8F
签名算法名称: SHA256withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 3扩展:#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9D D7 16 6A F7 3A 0C 02 AB C8 08 E6 E3 27 48 C0 ...j.:.......'H.
0010: 54 1C AA F4 T...
]
]*******************************************
*******************************************c:\test\keystoreRSA>
---
c:\test\keystoreRSA>keytool -list -keystore .keystore -storepass tomcat
密钥库类型: jks
密钥库提供方: SUN您的密钥库包含 1 个条目mytomcat, 2021-5-24, PrivateKeyEntry,
证书指纹 (SHA1): CE:B8:BD:B9:E7:71:0A:25:39:12:B1:3C:67:FF:F2:32:CC:05:07:7Cc:\test\keystoreRSA>
---
■扩展JDK下,已经安装的证书查看
1.cacerts文件没有被修改
cd c:\Program Files\Java\jre1.8.0_191\lib\security
2.查看证书指纹
keytool -list -keystore cacerts -storepass changeit
--
3.查看证书详细信息
keytool -list -v -keystore cacerts -storepass changeit
---
---
■扩展,JDK添加证书的信任机构
加入JDK证书信任,C:\Program Files\Java\jre1.8.0_191\lib\security>目录下运行命令:keytool -import -alias cacert -keystore cacerts -file 盘:目录/证书文件.crtkeystore的默认密码“changeit”
---
使用JDK中的 keytool【创建证书】・【查看】・【使用】相关推荐
- 【ssl认证、证书】SSL双向认证java实战、keytool创建证书
文章目录 概述 keytool示例 参考 相关文章: //-----------Java SSL begin---------------------- [ssl认证.证书]SSL双向认证和SSL单向 ...
- 使用JDK自带keytool生成证书
JDK keytool 的介绍 keytool 是JDK 自带的可以生成证书的工具,只要安装JDK 并且配置好相应的环境变量,就可以直接用CMD 命令窗口使用(本文中使用JDK1.8). C:\> ...
- JDK 中的证书生成和管理工具 keytool
参考网址:http://www.cnblogs.com/youxia/p/java002.html 阅读目录 参考资料 网络安全概论 使用keytool创建和管理证书 总结 参考资料 该文中的内容来源 ...
- GBase 8d证书查看
证书查看器是从GBase XDM Server中查看当前条目的证书属性中查看证书. ※首先选中证书属性,可以通过以下的任意一种方式开始"证书查看器"操作: ·从"工具&q ...
- java中Keytool生成证书
任何机构或者个人都可以申请数字证书,并使用数字证书对网络通信保驾护航.要获得数字证书,首先需要使用数字证书管理工具,如keytool.OpenSSL等,然后构建CSR(Certificate Sigi ...
- 使用JDK自带的工具keytool生成证书
1.以管理员身份,打开CMD命令窗口,输入如下命令,生成证书: Microsoft Windows [版本 10.0.17134.523] (c) 2018 Microsoft Corporation ...
- java 证书查看工具_程序员必备工具 Java证书工具Keytool的使用
一.简介 Keytool是JDK自带的证书管理工具,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 回顾下前一章的一些概念:PKI:公钥基础设施 X.509 : PKI ...
- 将https安全证书导入jdk中
添加https安全证书 添加https安全证书 生成证书 导出证书 将证书导入jdk中 查看添加到jdk中的所有证书 添加https安全证书 以下是我在linux上安装mysql5.7版本的步骤以及遇 ...
- 下载安全证书到jdk中的cacerts证书库
最近在公司遇到访问https请求,JDK返回异常信息的问题.返回如下: java.lang.Exception: java.lang.Exception: sun.security.validator ...
最新文章
- yolo类检测算法解析——yolo v3
- python数据拼接: pd.concat
- Character.isLetterOrDigit(ch)判断ch是否为字母或数字
- java 栈 泛型_java 泛型栈(数组实现) | 学步园
- c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...
- 快速查找Unity中的死循环
- python抓取qq群消息,python 爬取qq群员信息
- 益聚星荣:一文看懂,为什么有的投资人讨厌元宇宙,有的却爱死它了
- 怀旧服ouf头像插件_魔兽世界7.0前夕ShadowedUF简洁头像插件
- arcgis制作超链接
- AutoCAD.NET实现CAD截图
- n条线段可以组成多少种三角形
- random.seed()的用法
- 系统硬盘分区模式之GPT
- CorelDRAW平面设计标准教程免费视频教程
- ASP.NET控件集合
- 进程上下文与线程上下文
- 海思YOLOv3 wk模型在nnie设备上面推理
- linux② 常用命令 , python3, django安装
- python国防_Python+Excel数据分析实战:军事体能考核成绩评定(八)体型评定
热门文章
- html5 input选择文件,input文件选择,限定文件类型。
- java pattern堆栈溢出_我的正则表达式导致Java中的堆栈溢出;我错过了什么?
- oracle 12c 性能,Oracle 12C 新性能 总结篇
- activiti jsp 流程设计器_「Activiti精品 悟纤出品」Activiti插件来助你一臂之力 - 第327篇...
- Observable与Observer
- 金融行业文档管理系统的八大创新
- nodejs应用在linux服务器中的部署
- OSChina 周日乱弹 ——可以囤硬盘了
- 起点文学网ViewState解码分析后的结果研究
- Andriod UI设计之度量单位说明(DIP,DP,PX,SP)