JSSE系统属性的配置

2023-10-10 19:32
文章标签 配置 系统 属性 jsse

本文主要是介绍JSSE系统属性的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述
Java安全套接字扩展(JSSE)提供SSL/TLS的底层框架实现。在此框架中,你可以使用各种JSSE的系统属性来配置SSL/TLS协议和部署X.509证书。
系统属性

表格列出可用来配置SSL、HTTPS、Stomp+SSL传输协议上的系统属性

系统属性名描述
javax.net.ssl.keyStore Java的密钥库的路径,它包含应用进程本身的证书和私钥。在Windows下,
路径名分隔符需要把反斜杠(\)改成斜杠(/)
javax.net.ssl.keyStorePassword访问密钥库中私钥的密码,该密钥库由javax.net.ssl.keyStore指定,密码使用两次:
1. 解锁密钥库文件(库密码)
2. 解密存储在密钥库中的私钥(密钥密码)
换句话说,JSSE框架要求这两个密码必须相同。
javax.net.ssl.keyStoreType(可选)对于密钥库文件格式,这个值为jks/JKS,默认已经为jks
javax.net.ssl.trustStore包括CA证书的密钥库路径,这些CA证书是被应用进程信任的,也叫信任库。
在Windows下,路径名分隔符需要把反斜杠(\)改成斜杠(/)
如果信任库路径没有通过此属性指定,Sun的JSSE框架默认会按照下列顺序
搜寻和使用密钥库:
1. $JAVA_HOME/lib/security/jssecacerts
2. $JAVA_HOME/lib/security/cacerts
javax.net.ssl.trustStorePassword解锁信任库的库密码
javax.net.ssl.trustStoreType(可选)默认为jks
javax.net.debugSSL/TLS层的日志开关,可设为ssl


警告

将证书存放在JSSE缺省信任库的位置(jssecacerts和cacerts)是有一个潜在的安全风险。如果你无权JDK安装目录下的信任证书库

进行管理,或者无法控制该JDK安装目录,你会发现这样太过随意了。

为安全起见,推荐你始终设置属性javax.net.ssl.trustStore,以便你可以在你的应用程序中完全控制这些CA证书


命令行设置属性
在客户端和代理中,你可以通过命令行设置系统属性,-DProperty=Value.例如
java -Djavax.net.ssl.trustStore=truststores/client.ts com.progress.Client


在Windows中,你可以设置SSL_OPTS环境变量
set SSL_OPTS=-Djavax.net.ssl.keyStore=C:/Programs/FUSE/fuse-message-broker-7.1.0.fuse-047/conf/broker.ks
         -Djavax.net.ssl.keyStorePassword=password
         -Djavax.net.ssl.trustStore=C:/Programs/FUSE/fuse-message-broker-7.1.0.fuse-047/conf/broker.ts 
         -Djavax.net.ssl.trustStorePassword=password
 
在JAVA程序中设置属性
你也可以在Java API中设置这些JSSE系统属性,不过你必须要在调用相关传输层协议初始化之前设置好这些值。
import java.util.Properties;Properties systemProps = System.getProperties();
systemProps.put("javax.net.ssl.trustStore","C:/Programs/FUSE/fuse-message-broker-7.1.0.fuse-047/conf/client.ts"
);
System.setProperties(systemProps);

原文地址:

https://access.redhat.com/documentation/en-US/Fuse_MQ_Enterprise/7.1/html/Security_Guide/files/SSL-SysProps.html


这篇关于JSSE系统属性的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/182611

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe