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

相关文章

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

mysql5.7.15winx64配置全过程

《mysql5.7.15winx64配置全过程》文章详细介绍了MySQL5.7.15免安装版的配置步骤,包括解压安装包、设置环境变量、修改配置文件、初始化数据目录、安装服务、启动数据库、登录及密码修改... 目录前言一、首先下载安装包二、安android装步骤1.第一步解压文件2.配置环境变量3.复制my-

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

MySQL配置多主复制的实现步骤

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 环境准备2. 配置每台服务器2.1 修改每台服务器的配置文件3. 安装和配置插件4. 启动组复制4.

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把