默认情况下,我们配置在domain.xml或host.xml文件中的信息都是明文,对一些敏感信息就显得安全性不够,可以使用jboss提供的vault机制来进行加密

下面的内容来自 http://www.cnblogs.com/yjmyzz/p/how-to-encrypt-datasource-password-with-jboss-eap-6.html

1. 利用keytool生成keystore文件,参考命令如下:

keytool -genseckey -alias ctas -storetype jceks -keyalg AES -keysize  -storepass mypassword -keystore C:\jboss-eap-6.3\bin\vault.keystore

说明:keytool是jdk自带的小工具,红色的部分是大家要根据自身情况修改的,蓝色(ES为加密算法,可以改成RSA之类,128为加密强度)的可改可不改。

-alias 后的ctas为别名,可以随便改

-storepass 后的mypassword为访问keystore文件的密码

-keystore 后的C:\jboss-eap-6.3\bin\vault.keystore为keystore文件的保存路径,整个keystore相当于一个敏感信息的文件数据库,可以把一些敏感信息,比如db连接密码,ftp密码,邮件密码保存在这里

2. 运行C:\jboss-eap-6.3\bin\vault.bat

输入0,进入交互模式

Starting an interactive session

Enter directory to store encrypted files:C:\jboss-eap-6.3\bin\ --这里输入keystore文件所在目录
Enter Keystore URL:C:\jboss-eap-6.3\bin\vault.keystore --这里输入keystore文件完整路径
Enter Keystore password: --这里输入keystore的密码,与刚才步骤1中的密码要相同
Enter Keystore password again: --再次输入密码进行验证
Values match
Enter 8 character salt:20151214 --撒点盐,大家根据需要修改(必须是8位字符)
Enter iteration count as a number (Eg: 44):43 --加密的迭代次数(可以随便改)
Enter Keystore Alias:cnblogs --别名,可以随便改

这些弄完后,会输出下面这一段:

Initializing Vault
Jul 20, 2015 11:37:09 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in AS7 config file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="C:\jboss-eap-6.3\bin\vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-2W0YkkQmW8vbjUxlq79j/1"/>
<vault-option name="KEYSTORE_ALIAS" value="cnblogs"/>
<vault-option name="SALT" value="20151214"/>
<vault-option name="ITERATION_COUNT" value="43"/>
<vault-option name="ENC_FILE_DIR" value="C:\jboss-eap-6.3\bin\"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Exit

注意:红色部分,意思是让你把这一段,加到standalone.xml或host.xml的相应位置。(注:建议把这一段复制出来,等会儿再加到配置文件中)

3. 保持刚才的交互模式,不要退出,继续:

输入0,准备存储敏感信息

Task: Store a secured attribute
Please enter secured attribute value (such as password): --这里输入要存储的敏感信息,比如mysql的连接密码
Please enter secured attribute value (such as password) again: --再输入一次
Values match
Enter Vault Block:ctasDS_PWD --容器别名,随便起
Enter Attribute Name:password
Secured attribute value has been stored in vault.
Please make note of the following:
********************************************
Vault Block:ctasDS_PWD
Attribute Name:password
Configuration should be done as follows:
VAULT::ctasDS_PWD::password::
********************************************

4.修改jboss配置文件

<vault>
<vault-option name="KEYSTORE_URL" value="C:\jboss-eap-6.3\bin\vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-2W0YkkQmW8vbjUxlq79j/1"/>
<vault-option name="KEYSTORE_ALIAS" value="cnblogs"/>
<vault-option name="SALT" value="20151214"/>
<vault-option name="ITERATION_COUNT" value="43"/>
<vault-option name="ENC_FILE_DIR" value="C:\jboss-eap-6.3\bin\"/>
</vault>

域(domain)模式下,这一段要插入到host.xml文件的<management>之前,每台slave机器的host.xml里都要做同样的处理,keystore文件也要复制到每台slave机器上。

然后找到testDS的位置(域模式下datasource是在master机器的domain.xml里),把密码换成:

<datasource jta="false" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-ccm="false">
                  ...
                    <security>
                        <user-name>root</user-name>
                        <password>${VAULT::ctasDS_PWD::password::1}</password>
                    </security>
                    ...
                </datasource>

重启jboss,搞定。

jboss加密敏感信息的更多相关文章

  1. jboss eap 6.2+ 版本中 加密datasource密码等敏感信息

    默认情况下,在jboss eap 6.2+ 管理控制台创建datasource后,会在standalone.xml(独立模式)或host.xml(域模式)中以明文保存相关敏感信息. 这会给服务器留下安 ...

  2. 【Java编码准则】の #02不要在client存储未加密的敏感信息

    当构建CS模式的应用程序时,在client側存储敏感信息(比如用户私要信息)可能导致非授权的信息泄漏. 对于Web应用程序来说,最常见的泄漏问题是在client使用cookies存放server端获取 ...

  3. 【Android平台安全方案】の #00-请不要在外部存储(SD卡)加密存储的敏感信息

    本文翻译自https://www.securecoding.cert.org/confluence/display/java/DRD00-J.+Do+not+store+sensitive+infor ...

  4. Spring Boot: 加密应用配置文件敏感信息

    Spring Boot: 加密应用配置文件敏感信息 背景 我们的应用之前使用的是Druid数据库连接池,由于需求我们迁移到HikariCP连接池,druid 数据源加密提供了多种方式: 可以在配置文件 ...

  5. logstash 对配置文件conf敏感信息,密码等加密

    logstash的配置文件conf经常会涉及敏感信息,比如ES,mysql的账户密码等,以下使用logstash导入mysql为例子,加密隐藏mysql的密码. 在向keystore中添加key及其s ...

  6. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息

     1. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo&q ...

  7. 使用jni技术进行android应用签名信息核查及敏感信息保护

           近期业余时间写了一款应用<摇啊摇>,安智.安卓.360等几个应用商店已经陆续审核通过并上线.从有想法到终于将产品做出来并公布,断断续续花了近二个半月的业余时间,整体来讲还算顺 ...

  8. 对Java配置文件中敏感信息进行加解密的工具类

    在 JavaEE 配置文件中,例如 XML 或者 properties 文件,由于某些敏感信息不希望普通人员看见,则可以采用加密的方式存储,程序读取后进行解密. 常见的如: 数据库用户密码,短信平台用 ...

  9. Spring拓展接口之BeanFactoryPostProcessor,占位符与敏感信息解密原理

    前言 开心一刻 一只被二哈带偏了的柴犬,我只想弄死隔壁的二哈 what:是什么 BeanFactoryPostProcessor接口很简单,只包含一个方法 /** * 通过BeanFactoryPos ...

随机推荐

  1. 产品经理如何赢得开发人员的尊重和支持?-摘自infoq

    对于产品经理来说,赢得开发人员的尊重和支持,从某种意义上讲,是产品迈向成功的坚实一步.最近,知乎社区上的开发人员和管理者在前.后两个帖子中对此展开了激烈的讨论,其中不乏真知灼见. 林志霖Cray认为产 ...

  2. 现代程序设计——homework-07

    1.写在前面 不得不很惭愧地说,在看这些博客之前,我对C++的了解仅限于上过一门特别水的关于C++的公选课.一门只有五节课的专业选修课,写过一点点符合C++语法语法规则的类C程序,偶尔在论坛.博客中看 ...

  3. CF#190DIV.1

    /* CF#190DIV.1-C 题意:给你n个结点的树,给这些结点标记字母AB..Z,对于标记相同的结点路径上 的结点的标记必须有一个是大于该标记的:问是否可以标记(A是最大标记) 分析:整天思路就 ...

  4. 当心回车符破坏你的JSON数据

    今天发现系统中一个地方获取JSON数据时,时而失败,时而成功,最后发现是回车符搞的鬼. 当你的JSON中有回车符时,会致使你的JSON出现格式错误:解决办法是在保存数据,或整理数据向客户端输出时将回车 ...

  5. Linux df 命令用法示例

    介绍: Linux中df命令可以用来显示目前在Linux系统上的文件系统的磁盘使用情况统计.这些工具可以方便地知道哪些文件系统消耗多少内存.此外,如果被拾起,并且提供一个特定的文件名作为df命令的参数 ...

  6. 转载 从Http到Https

    转载自 http://www.cnblogs.com/silin6/p/5928503.html HTTP 当你在浏览器输入一个网址 (例如 http://tasaid.com)的时候,浏览器发起一个 ...

  7. hash_map vs unordered_map vs map vs unordered_set

    hash_map vs unordered_map 这两个的内部结构都是采用哈希表来实现.unordered_map在C++11的时候被引入标准库了,而hash_map没有,所以建议还是使用unord ...

  8. ASP.NET MVC- 数据验证机制

    ASP.NET MVC的数据验证机制,比起ASP.NET WEBFORM那种高效很多.下面记录以下两个示例,以便日后方便查阅. 方式一:在Controller里通过AddModelError方法返回错 ...

  9. update多表更新的2种方式

    update t1 set TermBeginQty =isnull((select top 1 JiaoPlusQty from WMS_RptMaterialPutDaily r where t1 ...

  10. '用Roslynpad做一个轻量级的C#编辑器'

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:'用Roslynpad做一个轻量级的C#编辑器'.