spring-boot - SAML SSO 的密钥库证书的重要性
问题描述
我是证书和密钥库的新手。
SAML SSO(在 Spring boot SAML SSO 的上下文中)的密钥库和证书的重要性和工作原理是什么?
我看到.jks
, .pem
, .cer
, .der
, 等在使用中。这些是什么?
解决方案
KeyStore 的重要性和工作原理以及 SAML SSO 的证书(在 Spring boot SAML SSO 的上下文中)是什么?
- 这些用于签署 SAML 断言、SAML 协议请求和响应的安全含义。
- SAML SSO 中的证书将用于对 SAML 断言/请求/响应进行数字签名,而 KeyStore 是存储密钥/证书的持久存储。
断言方签名的断言支持断言完整性、断言方对 SAML 依赖方的身份验证,并且如果签名基于 SAML 机构的公私密钥对,则支持不可否认的来源。
由消息发起者签名的 SAML 协议请求或响应消息支持消息完整性、消息来源到目的地的身份验证,并且如果签名基于发起者的公私密钥对,则支持来源的不可否认性。
- 证书也用于安全通道建立 (SSL/TLS)。
.jks、.pem、.cer、.der 等是什么?
- .jks 是 JAVA 专有的 KeyStore (JKS) 格式的扩展。JKS 是私钥和相关证书或证书链的数据库格式。在 JAVA 8 之前,默认情况下,如 java.security 文件中所指定,keytool 使用 JKS 作为密钥和证书数据库(KeyStore 和 TrustStores)的格式。自 JAVA 9 起,默认 KeyStore 格式已更改为 PKCS12(扩展名 .pkcs)。
.pem、.cer、.der 是证书/密钥类型/扩展名:
- .PEM :PEM 扩展名用于不同类型的 X.509v3 文件,这些文件包含以“-- BEGIN ...”行为前缀的 ASCII (Base64) 装甲数据。
- .DER :DER 扩展名用于二进制 DER 编码证书。这些文件也可能带有 CER 或 CRT 扩展名。正确的英语用法是“我有一个 DER 编码证书”而不是“我有一个 DER 证书”。
- .CRT :CRT 扩展名用于证书。证书可以编码为二进制 DER 或 ASCII PEM。CER 和 CRT 扩展几乎是同义词。在 *nix 系统中最常见。
- CER:.crt 的替代形式(Microsoft 约定)您可以使用 MS 将 .crt 转换为 .cer(.both DER 编码的 .cer,或 base64[PEM] 编码的 .cer) .cer 文件扩展名也被 IE 识别为运行 MS cryptoAPI 命令(特别是 rundll32.exe cryptext.dll,CryptExtOpenCER)的命令,该命令显示导入和/或查看证书内容的对话框。
- .KEY :KEY 扩展名用于公共和私有 PKCS#8 密钥。密钥可以编码为二进制 DER 或 ASCII PEM。
推荐阅读
- arrays - numba jit 无法理解数组的单个元素不是数组
- fipy - 我如何表达像扩散项这样的术语?
- node.js - 如何根据查询值链接 express-validator?
- javascript - 浏览器开发者工具(F12模式)下直接执行Cypress命令如何打印日志
- excel - 删除新工作簿中的空白行
- python - openpyxl:合并单元格的左右边框
- vb.net - 调整窗口大小和窗口窗体
- kubernetes - 具有容器原生负载平衡的 GKE Ingress 未检测到运行状况检查(字段“resource.httpHealthCheck”的值无效)
- angular - 常规变更日志自定义模板 - 如果未指定关闭,则不返回行
- amazon-web-services - 编排中的线程与容器