首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用自签名证书创建密钥库和信任库?

如何使用自签名证书创建密钥库和信任库?
EN

Stack Overflow用户
提问于 2017-02-22 09:26:27
回答 2查看 19.4K关注 0票数 11

我们有JAVA服务器和客户端使用SSL在网络上进行通信。服务器和客户端使用证书相互验证。服务器和客户端使用的keystore类型是JKS。服务器和客户端的密钥库和信任库文件名为: server.keystore、server.truststore、client.keystore和client.truststore。

我只使用自我签署的证书进行测试.

问题:

Q1。我想知道为什么在步骤6中我需要将服务器和客户端自己的证书添加到他们各自的信任库中。

Q2。我可以减少步骤数来实现同样的目标吗?如果是,那怎么做?

步骤为服务器创建RSA密钥、自签名证书、密钥存储库和信任存储库。

1.生成一个私用RSA密钥

openssl genrsa -out diagserverCA.key 2048

2.创建x509证书

openssl req -x509 -new -nodes -key diagserverCA.key -sha256 -days 1024 -out diagserverCA.pem

3.从私钥和公共证书创建PKCS12密钥存储库.

openssl pkcs12 -export -name server-cert -in diagserverCA.pem -inkey diagserverCA.key -out serverkeystore.p12

4.将PKCS12密钥库转换为JKS密钥存储库

关键工具-importkeystore -destkeystore server.keystore -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias服务器-cert

5.将客户端证书导入服务器的信任存储区.

关键工具-import -alias client-cert -file diagclientCA.pem -keystore server.truststore

6.将服务器的证书导入服务器的信任存储区.

关键工具-import -alias server-cert -file diagserverCA.pem -keystore server.truststore

步骤为客户端创建RSA私钥、自签名证书、密钥存储库和信任存储库。

1.生成私钥

openssl genrsa -out diagclientCA.key 2048

2.创建x509证书

openssl req -x509 -new -nodes -key diagclientCA.key -sha256 -days 1024 -out diagclientCA.pem

3.从私钥和公共证书创建PKCS12密钥存储库.

openssl pkcs12 -export -name client-cert -in diagclientCA.pem -inkey diagclientCA.key -out clientkeystore.p12

4.将PKCS12密钥库转换为JKS密钥存储库

关键工具-importkeystore -destkeystore client.keystore -srckeystore clientkeystore.p12 -srcstoretype pkcs12 -alias client-cert

5.将服务器证书导入客户端的信任存储区.

关键工具-import -alias server-cert -file diagserverCA.pem -keystore client.truststore

6.将客户端证书导入到客户端的信任存储区.

关键工具-import -alias client-cert -file diagclientCA.pem -keystore client.truststore

EN

回答 2

Stack Overflow用户

发布于 2017-02-23 10:50:23

Q1。我想知道为什么在步骤6中我需要将服务器和客户端自己的证书添加到他们各自的信任库中。

没有。您可以将服务器和客户端证书添加到彼此的信任库中。服务器和客户端不需要信任他们自己的证书,但是他们需要相互信任对方的证书。

Q2。我可以减少步骤数来实现同样的目标吗?如果是,那怎么做?

您可以使用keytool完成整个过程。大量有记载的例子。您根本不需要使用openssl

评论:

  • 在第一部分中,步骤5和步骤6都是错误的。应该有一个步骤:将服务器的证书导出到客户端的信任库。
  • 类似地,在第二部分中,步骤5和步骤6再次出错,而且也应该只有一步:将客户端的证书导出到服务器的keystore。
  • 换句话说,两个步骤5s应该互换,两个步骤6s应该被删除。

您将在JDK文档中找到在JSSE参考指南中执行大量操作的正确说明。每步约三步。但它真正显示的是,自签署的证书真的是不值得的纸张,他们被打印。获得CA签署的证书。更有价值,更容易部署(没有导出步骤)。

你从哪弄来这些垃圾的?

票数 3
EN

Stack Overflow用户

发布于 2017-10-26 10:39:47

Q1。我想知道为什么在步骤6中我需要将服务器和客户端自己的证书添加到他们各自的信任库中。

A1。如果您没有使用公共证书颁发机构对客户端和服务器证书进行签名.将每一个添加到信任存储中是唯一的方法。然而..。即使在测试环境中,也可以创建自己的证书颁发机构,并使用它对您创建的客户端和服务器证书进行签名。然后,您的信任存储将只需要包含证书颁发机构的公钥。

Q2。我可以减少步骤数来实现同样的目标吗?如果是,那怎么做?

A2。是的,使用通用证书对客户端和服务器证书进行签名。

查看这个职位中的脚本,了解如何创建自己的CA并使用它签署服务器和客户端证书。它也创建了你的信任商店..。

希望这能有所帮助。

最好的,艾斯

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42398344

复制
相关文章
如何创建自签名证书
TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。在本教程中,我们将向您展示如何在Ubuntu 18.04上设置用于Apache Web服务器的自签名SSL证书。
小铁匠米兰的v
2018/08/17
2.1K0
如何为Nginx创建自签名SSL证书
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。 TLS与SSL在传输层对网络连接进行加密。
尘埃
2018/07/20
11.9K0
如何制作和使用自签名证书
因为自签名证书签发相对于商业证书流程简单,费用低廉(除了电费几乎不花钱),更新容易。所以在开发领域、甚至一些小众场景下特别常见,比如 K8S / MySQL 集群中的 TLS 认证,一些大的集团、公司的内网服务、网站安全证书、企业路由器设备的管理后台、用于管理企业员工的“安全准入客户端”等不乏使用这个方案。
soulteary
2021/02/06
4.4K0
如何制作和使用自签名证书
如何制作和使用自签名证书
因为自签名证书签发相对于商业证书流程简单,费用低廉(除了电费几乎不花钱),更新容易。所以在开发领域、甚至一些小众场景下特别常见,比如 K8S / MySQL 集群中的 TLS 认证,一些大的集团、公司的内网服务、网站安全证书、企业路由器设备的管理后台、用于管理企业员工的“安全准入客户端”等不乏使用这个方案。
soulteary
2021/02/26
1.5K0
如何制作和使用自签名证书
如何制作自签名证书
本文主要介绍如何基于openssl制作X.509自签名证书,以及如何使用该证书签发新证书。
coderhuo
2023/10/21
2.3K0
如何制作自签名证书
26 Dec 2021 使用cfssl创建自签名证书
可以通过执行cfssl print-defaults config创建默认的配置文件,然后再修改。
俊采
2023/10/17
2600
为Apache创建自签名SSL证书
TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。
编程男孩
2018/07/26
6.5K0
为Apache创建自签名SSL证书
生成CSR和自签名证书
CSR,全称Certificate Signing Request(证书签发请求),是一种包含了公钥和与主题(通常是实体的信息,如个人或组织)相关的其他信息的数据结构。CSR通常用于向证书颁发机构(Certificate Authority,CA)申请数字证书。下面是CSR的详细介绍:
孟斯特
2023/10/25
6510
生成CSR和自签名证书
JDK信任自签证书
找到cacerts文件所在目录路径,jdk_home(jdk位置路径)/jdk1.8.0_231/jre/lib/security 如果是window系统斜杠是“\”到cacerts文件所在路径位置,Linux就cd到此位置,Windows就cmd到此位置
itze
2022/10/31
1.2K0
JDK信任自签证书
harbor使用自签名证书实现https
前面说了怎么搭建harbor仓库,这里讲一讲harbor实现https访问,因为只需要内网访问,没必要去申请一个ssl证书,所以我就用openssl颁发自签名证书,实现https访问。需要搭建一个dns服务器,让你的域名解析到你的harbo地址,具体教程,请看我上一篇的博客。
kevinfaith
2020/01/21
3.7K0
使用certstrap快速生成自签名证书
certstrap https://github.com/square/certstrap 是一个自签名证书生成工具,相比 openssl 来说更简易好用。
:Darwin
2023/08/09
6560
如何在Debian 9上为Nginx创建自签名SSL证书
TLS或传输层安全性及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。
水门
2018/11/06
2.5K0
如何在Debian 9中为Apache创建自签名SSL证书
TLS或传输层安全性及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。
苏子晨
2018/11/15
2.6K0
如何在Ubuntu 16.04中为Apache创建自签名SSL证书
TLS或传输层安全性及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。
藕丝空间
2018/09/28
1.8K0
如何在Ubuntu 16.04中为Nginx创建自签名SSL证书
TLS或称传输层安全性,及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。
不会飞的蝴蝶
2018/09/25
3.1K0
生成自签名ssl证书
查看证书信息命令 openssl x509 -in myCA.crt -noout -text
Linux运维技术之路
2022/06/07
2.6K0
生成CA自签名根证书和颁发证书和证书提取
CA(Certificate Authority)被称为证书授权中心,是数字证书发放和管理的机构。
mousemin
2023/06/10
1.4K0
[ChatGPT解决方案]生成 nginx 自签名证书
经常在内部环境需要将网站配置成 https,于是就有了一个需求:创建一个不会过期的 ngxix 自签名证书。于是就向 ChatGPT 提出了这个需求,得到了想要的解决方案。
Hopetree
2022/12/10
1.1K0
iOS使用自签名证书实现HTTPS请求
概述 在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求。 默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向Info.plist中添加NSAllowsArbitraryLoads设置绕过ATS(App Transport Security)的限制(否则须在应用审核时进行说明并很可能会被拒)。所以还未进行相应配置的公司需要尽快将升级为HTTPS的事项提上进程了。 Https HTTPS就是HTTP协议上再加一层加密处理
xiangzhihong
2018/01/26
2K0
点击加载更多

相似问题

如何使离子库信任自签名证书

124

Java自签名证书和密钥库的使用

13

AXIS Soap调用-仅对自签名证书使用信任库

11

如何信任自签名证书

151

信任自签名证书

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文